diff --git a/creational/abstract_factory/main_test.go b/creational/abstract_factory/main_test.go new file mode 100644 index 0000000..52515cb --- /dev/null +++ b/creational/abstract_factory/main_test.go @@ -0,0 +1,28 @@ +package main + +import ( + "testing" +) + +var c = CarFactory{} + +func TestCarFactory(t *testing.T) { + + carFactory, err := CreateVehicleFactory(CAR) + if err != nil { + t.Fatal(err) + } + + luxuryCar, err := carFactory.NewVehicle(LuxuryCarType) + if err != nil { + t.Fatal(err) + } + + car, ok := luxuryCar.(Car) + if !ok { + t.Fatal("struct assertion failed") + } + + t.Logf("CarType: Luxury NumWheels=%d, NumSeats=%d, NumDoors=%d", + luxuryCar.NumWheels(), luxuryCar.NumSeats(), car.NumDoors()) +}