File size: 1,842 Bytes
d6f631f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package planaddon

import (
	"errors"
	"fmt"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestIsNotFoundError(t *testing.T) {
	tests := []struct {
		Name          string
		Error         error
		ExpectedError bool
	}{
		{
			Name: "Valid",
			Error: NewNotFoundError(NotFoundErrorParams{
				Namespace: "test",
				ID:        "test",
			}),
			ExpectedError: true,
		},
		{
			Name: "Wrapped",
			Error: fmt.Errorf("wrapped: %w", NewNotFoundError(NotFoundErrorParams{
				Namespace: "test",
				ID:        "test",
			}),
			),
			ExpectedError: true,
		},
		{
			Name:          "Invalid",
			Error:         errors.New("test error"),
			ExpectedError: false,
		},
	}

	for _, test := range tests {
		t.Run(test.Name, func(t *testing.T) {
			assert.Equal(t, test.ExpectedError, IsNotFound(test.Error))
		})
	}
}

func TestIsNotFoundError_String(t *testing.T) {
	tests := []struct {
		Name          string
		Error         error
		ExpectedError string
	}{
		{
			Name: "ID",
			Error: NewNotFoundError(NotFoundErrorParams{
				Namespace: "namespace",
				ID:        "id",
			}),
			ExpectedError: "not found error: plan add-on assignment not found [namespace=namespace id=id]",
		},
		{
			Name: "Key",
			Error: NewNotFoundError(NotFoundErrorParams{
				Namespace:    "namespace",
				PlanIDOrKey:  "plan_key",
				AddonIDOrKey: "addon_key",
			}),
			ExpectedError: "not found error: plan add-on assignment not found [namespace=namespace plan.idOrKey=plan_key addon.idOrKey=addon_key]",
		},
		{
			Name:          "Default",
			Error:         NewNotFoundError(NotFoundErrorParams{}),
			ExpectedError: "not found error: plan add-on assignment not found",
		},
	}

	for _, test := range tests {
		t.Run(test.Name, func(t *testing.T) {
			t.Logf("%v", test.Error)

			assert.Equal(t, test.ExpectedError, test.Error.Error())
		})
	}
}