github.com/sinangedik/terraform@v0.3.5/helper/schema/set_test.go (about) 1 package schema 2 3 import ( 4 "reflect" 5 "testing" 6 ) 7 8 func TestSetAdd(t *testing.T) { 9 s := &Set{F: testSetInt} 10 s.Add(1) 11 s.Add(5) 12 s.Add(25) 13 14 expected := []interface{}{1, 5, 25} 15 actual := s.List() 16 if !reflect.DeepEqual(actual, expected) { 17 t.Fatalf("bad: %#v", actual) 18 } 19 } 20 21 func TestSetContains(t *testing.T) { 22 s := &Set{F: testSetInt} 23 s.Add(5) 24 25 if s.Contains(2) { 26 t.Fatal("should not contain") 27 } 28 if !s.Contains(5) { 29 t.Fatal("should contain") 30 } 31 } 32 33 func TestSetDifference(t *testing.T) { 34 s1 := &Set{F: testSetInt} 35 s2 := &Set{F: testSetInt} 36 37 s1.Add(1) 38 s1.Add(5) 39 40 s2.Add(5) 41 s2.Add(25) 42 43 expected := []interface{}{1} 44 actual := s1.Difference(s2).List() 45 if !reflect.DeepEqual(actual, expected) { 46 t.Fatalf("bad: %#v", actual) 47 } 48 } 49 50 func TestSetIntersection(t *testing.T) { 51 s1 := &Set{F: testSetInt} 52 s2 := &Set{F: testSetInt} 53 54 s1.Add(1) 55 s1.Add(5) 56 57 s2.Add(5) 58 s2.Add(25) 59 60 expected := []interface{}{5} 61 actual := s1.Intersection(s2).List() 62 if !reflect.DeepEqual(actual, expected) { 63 t.Fatalf("bad: %#v", actual) 64 } 65 } 66 67 func TestSetUnion(t *testing.T) { 68 s1 := &Set{F: testSetInt} 69 s2 := &Set{F: testSetInt} 70 71 s1.Add(1) 72 s1.Add(5) 73 74 s2.Add(5) 75 s2.Add(25) 76 77 expected := []interface{}{1, 5, 25} 78 actual := s1.Union(s2).List() 79 if !reflect.DeepEqual(actual, expected) { 80 t.Fatalf("bad: %#v", actual) 81 } 82 } 83 84 func testSetInt(v interface{}) int { 85 return v.(int) 86 }