From c7042966dce8d0eaa478539e92e5f76ad5d0468c Mon Sep 17 00:00:00 2001 From: Lucas Alves Date: Thu, 1 Jul 2021 01:00:56 -0300 Subject: [PATCH] Created a file that has an eg usage of factory --- creational/abstract_factory/main_test.go | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 creational/abstract_factory/main_test.go 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()) +}