this repo has no description
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}