public void ShouldObjectBeInitialize() { var emptyClassProvider = new EmptyClassProvider(); var emptyObjectProvider = new EmptyObjectProvider(emptyClassProvider); var emptyMyService = emptyObjectProvider.GetEmptyObject(typeof(IMyService)); Assert.IsAssignableFrom <IMyService>(emptyMyService); var emptyMyServiceInitializeByGeneric = emptyObjectProvider.GetEmptyObject <IMyService>(); Assert.IsAssignableFrom <IMyService>(emptyMyServiceInitializeByGeneric); var emptyGenericMyService = emptyObjectProvider.GetEmptyObject(typeof(Models.Generic.IMyService <>), typeof(int)); Assert.IsAssignableFrom <Models.Generic.IMyService <int> >(emptyGenericMyService); var emptyGenericMyServiceInitializeByGeneric = emptyObjectProvider.GetEmptyObject <Models.Generic.IMyService <int> >(); Assert.IsAssignableFrom <Models.Generic.IMyService <int> >(emptyGenericMyServiceInitializeByGeneric); var emptyGenericNestedMyService = emptyObjectProvider.GetEmptyObject(typeof(Models.Generic.MyService <> .IMyNestedService <,>), typeof(int), typeof(int), typeof(MyService)); Assert.IsAssignableFrom <Models.Generic.MyService <int> .IMyNestedService <int, MyService> >(emptyGenericNestedMyService); var emptyGenericNestedMyServiceInitializeByGeneric = emptyObjectProvider.GetEmptyObject <Models.Generic.MyService <int> .IMyNestedService <int, MyService> >(); Assert.IsAssignableFrom <Models.Generic.MyService <int> .IMyNestedService <int, MyService> >(emptyGenericNestedMyServiceInitializeByGeneric); }
public void ShouldGenericConstraintBeEffective() { var emptyClassProvider = new EmptyClassProvider(); var emptyObjectProvider = new EmptyObjectProvider(emptyClassProvider); Assert.Throws <ArgumentException>(() => emptyObjectProvider.GetEmptyObject(typeof(Models.Generic.MyService <> .IMyNestedService <,>), typeof(int), typeof(MyService), typeof(MyService))); Assert.Throws <ArgumentException>(() => emptyObjectProvider.GetEmptyObject(typeof(Models.Generic.MyService <> .IMyNestedService <,>), typeof(int), typeof(int), typeof(int))); Assert.Throws <ArgumentException>(() => emptyObjectProvider.GetEmptyObject(typeof(Models.Generic.MyService <> .IMyNestedServiceWithConstructorConstraint <>), typeof(int), typeof(MyServiceWithNonePublicConstructors))); }
public void ShouldServiceBeEmpty() { var emptyClassProvider = new EmptyClassProvider(); var emptyObjectProvider = new EmptyObjectProvider(emptyClassProvider); var emptyMyService = (IMyService)emptyObjectProvider.GetEmptyObject(typeof(IMyService)); emptyMyService.Id = 100; Assert.Equal(default(int), emptyMyService.Id); emptyMyService.MethodA(10); }
public void ShouldGenericServiceDefinitionBeEmpty() { var emptyClassProvider = new EmptyClassProvider(); var emptyObjectProvider = new EmptyObjectProvider(emptyClassProvider); var emptyNestedMyService = (Models.Generic.MyService <int> .IMyNestedService <int, MyService>)emptyObjectProvider.GetEmptyObject( typeof(Models.Generic.MyService <> .IMyNestedService <,>), typeof(int), typeof(int), typeof(MyService)); emptyNestedMyService.Id = 100; Assert.Equal(default(int), emptyNestedMyService.Id); emptyNestedMyService.MethodA(100); var methodBResult = emptyNestedMyService.MethodB(); Assert.Equal(default(MyService), methodBResult); var methodCResult = emptyNestedMyService.MethodC(); var methodDResult = emptyNestedMyService.MethodD(); Assert.Equal(default(MyService), methodDResult.Result); }