remote_test.go (2309B)
1 // Copyright 2021 The Hugo Authors. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13
14 package create
15
16 import (
17 "testing"
18
19 qt "github.com/frankban/quicktest"
20 )
21
22 func TestDecodeRemoteOptions(t *testing.T) {
23 c := qt.New(t)
24
25 for _, test := range []struct {
26 name string
27 args map[string]any
28 want fromRemoteOptions
29 wantErr bool
30 }{
31 {
32 "POST",
33 map[string]any{
34 "meThod": "PoST",
35 "headers": map[string]any{
36 "foo": "bar",
37 },
38 },
39 fromRemoteOptions{
40 Method: "POST",
41 Headers: map[string]any{
42 "foo": "bar",
43 },
44 },
45 false,
46 },
47 {
48 "Body",
49 map[string]any{
50 "meThod": "POST",
51 "body": []byte("foo"),
52 },
53 fromRemoteOptions{
54 Method: "POST",
55 Body: []byte("foo"),
56 },
57 false,
58 },
59 {
60 "Body, string",
61 map[string]any{
62 "meThod": "POST",
63 "body": "foo",
64 },
65 fromRemoteOptions{
66 Method: "POST",
67 Body: []byte("foo"),
68 },
69 false,
70 },
71 } {
72 c.Run(test.name, func(c *qt.C) {
73 got, err := decodeRemoteOptions(test.args)
74 isErr := qt.IsNil
75 if test.wantErr {
76 isErr = qt.IsNotNil
77 }
78
79 c.Assert(err, isErr)
80 c.Assert(got, qt.DeepEquals, test.want)
81 })
82
83 }
84
85 }
86
87 func TestCalculateResourceID(t *testing.T) {
88 c := qt.New(t)
89
90 c.Assert(calculateResourceID("foo", nil), qt.Equals, "5917621528921068675")
91 c.Assert(calculateResourceID("foo", map[string]any{"bar": "baz"}), qt.Equals, "7294498335241413323")
92
93 c.Assert(calculateResourceID("foo", map[string]any{"key": "1234", "bar": "baz"}), qt.Equals, "14904296279238663669")
94 c.Assert(calculateResourceID("asdf", map[string]any{"key": "1234", "bar": "asdf"}), qt.Equals, "14904296279238663669")
95 c.Assert(calculateResourceID("asdf", map[string]any{"key": "12345", "bar": "asdf"}), qt.Equals, "12191037851845371770")
96 }