typeDef := goldi.NewStructType(&MockType{}, "%param1%", "%param2%") config["param1"] = "TEST" config["param2"] = true generatedType, err := typeDef.Generate(resolver) Expect(err).NotTo(HaveOccurred()) Expect(generatedType).To(BeAssignableToTypeOf(&MockType{})) generatedMock := generatedType.(*MockType) Expect(generatedMock.StringParameter).To(Equal("TEST")) Expect(generatedMock.BoolParameter).To(Equal(true)) }) Context("when a type reference is given", func() { Context("and its type matches the struct field type", func() { It("should generate the type", func() { container.RegisterType("foo", NewMockType) typeDef := goldi.NewStructType(TypeForServiceInjection{}, "@foo") generatedType, err := typeDef.Generate(resolver) Expect(err).NotTo(HaveOccurred()) Expect(generatedType).To(BeAssignableToTypeOf(&TypeForServiceInjection{})) generatedMock := generatedType.(*TypeForServiceInjection) Expect(generatedMock.InjectedType).To(BeAssignableToTypeOf(&MockType{})) }) }) Context("and its type does not match the function signature", func() { It("should return an error", func() { container.RegisterType("foo", NewFoo) typeDef := goldi.NewStructType(TypeForServiceInjection{}, "@foo")