this repo has no description
at main 1.1 kB view raw
1package builder 2 3import ( 4 "fmt" 5 "testing" 6) 7 8func TestBuilder(t *testing.T) { 9 10 tests := []struct{ 11 builder string 12 expected House 13 }{ 14 { 15 builder: "normal", 16 expected: House{ 17 windowType: "Wooden Window", 18 doorType: "Wooden Door", 19 floor: 2, 20 }, 21 }, 22 { 23 builder: "igloo", 24 expected: House{ 25 windowType: "Snow Window", 26 doorType: "Snow Door", 27 floor: 1, 28 }, 29 }, 30 } 31 32 for _, test := range tests { 33 t.Run(fmt.Sprintf("should create a %s house with a builder using a director", test.builder), func(t *testing.T) { 34 builder := getBuilder(test.builder) 35 director := newDirector(builder) 36 house := director.buildHouse() 37 38 assertHouse(t, house, test.expected) 39 }) 40 } 41} 42 43func assertHouse(t testing.TB, got, want House) { 44 t.Helper() 45 46 if got != want { 47 t.Errorf("expected house to be %+v, got %+v", want, got) 48 } 49}