1 package interactors
2 
3 import (
4 	"testing"
5 
6 	"github.com/stretchr/testify/assert"
7 )
8 
9 func TestDistinctValues(t *testing.T) {
10 	s1 := []string{
11 		"v1",
12 		"v2",
13 		"v3",
14 		"v4",
15 		// "v5",
16 	}
17 	s2 := []string{
18 		// "v1",
19 		"v2",
20 		// "v3",
21 		"v4",
22 		"v5",
23 	}
24 	expectedDiff := []string{
25 		"v1",
26 		"v3",
27 		"v5",
28 	}
29 	diff := DistinctValues(s1, s2)
30 	assert.Equal(t, expectedDiff, diff, "Output differential of s1 and s2")
31 }
32 
33 func TestDistinctValuesEmpty(t *testing.T) {
34 	var s1 []string
35 	var s2 []string
36 
37 	diff := DistinctValues(s1, s2)
38 	assert.Equal(t, 0, len(diff), "Output differential of s1 and s2")
39 }
40 
41 func TestDistinctValuesDuplicates(t *testing.T) {
42 	s1 := []string{}
43 	s2 := []string{
44 		"v1",
45 		"v1",
46 		"v1",
47 	}
48 	expectedDiff := []string{
49 		"v1",
50 	}
51 	diff := DistinctValues(s1, s2)
52 	assert.Equal(t, expectedDiff, diff, "Output differential of s1 and s2")
53 }
54 
55 func TestSetSubtract(t *testing.T) {
56 	s1 := []string{
57 		"v1",
58 		"v2",
59 		"v3",
60 	}
61 	s2 := []string{
62 		"v2",
63 		"v3",
64 		"v4",
65 	}
66 	expected := []string{
67 		"v1",
68 	}
69 	diff := SetSubtract(s1, s2)
70 	assert.Equal(t, expected, diff, "Discard of s2 from s1")
71 }
72 
73 func TestSetUnion(t *testing.T) {
74 	s1 := []string{
75 		"v1",
76 		"v2",
77 		"v3",
78 	}
79 	s2 := []string{
80 		"v2",
81 		"v3",
82 		"v4",
83 	}
84 	expected := []string{
85 		"v1",
86 		"v2",
87 		"v3",
88 		"v4",
89 	}
90 	union := SetUnion(s1, s2)
91 	assert.Equal(t, expected, union, "Union of s2 and s1")
92 }
93 
94 func TestFilterNoUnicodeWithUnicode(t *testing.T) {
95 	regressionStr := "Move to AGP 3.0.0 stable ��"
96 	assert.Equal(
97 		t,
98 		"Move to AGP 3.0.0 stable ",
99 		FilterNoUnicode(regressionStr),
100 		"Function should filter out unicode characters",
101 	)
102 }
103 
104 func TestFilterNoUnicodeWithNoUnicode(t *testing.T) {
105 	validStr := "I'm a regular string with no whacky unicode chars"
106 	assert.Equal(
107 		t,
108 		validStr,
109 		FilterNoUnicode(validStr),
110 		"No change should occur",
111 	)
112 }
113