public void CanMapInterfacesToConcreteTypes() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set<IBuildKeyMappingPolicy>(new BuildKeyMappingPolicy(new NamedTypeBuildKey<ConcreteType>()), new NamedTypeBuildKey<ITestType>()); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey<ITestType>(); context.Strategies.ExecuteBuildUp(context); Assert.AreEqual(new NamedTypeBuildKey(typeof(ConcreteType)), spy.BuildKey); }
public void CanMapGenericsWithIdenticalGenericParameters() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set<IBuildKeyMappingPolicy>(new GenericTypeBuildKeyMappingPolicy( new NamedTypeBuildKey(typeof(ConcreteType<>))), new NamedTypeBuildKey(typeof(ITestType<>))); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey<ITestType<int>>(); context.Strategies.ExecuteBuildUp(context); Assert.Equal(new NamedTypeBuildKey(typeof(ConcreteType<int>)), spy.BuildKey); }
public void CanMapInterfacesToConcreteTypes() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set <IBuildKeyMappingPolicy>(new BuildKeyMappingPolicy(typeof(Foo)), typeof(IFoo)); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = typeof(IFoo); context.Strategies.ExecuteBuildUp(context); Assert.AreEqual <object>(typeof(Foo), spy.BuildKey); }
public void CanMapGenericsWithIdenticalGenericParameters() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set <IBuildKeyMappingPolicy>(new GenericTypeBuildKeyMappingPolicy(typeof(Foo <>)), typeof(IFoo <>)); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = typeof(IFoo <int>); context.Strategies.ExecuteBuildUp(context); Assert.AreEqual <object>(typeof(Foo <int>), spy.BuildKey); }
public void CanMapInterfacesToConcreteTypes() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set <IBuildKeyMappingPolicy>(new BuildKeyMappingPolicy(new NamedTypeBuildKey <ConcreteType>()), new NamedTypeBuildKey <ITestType>()); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey <ITestType>(); context.Strategies.ExecuteBuildUp(context); Assert.True((new NamedTypeBuildKey(typeof(ConcreteType))).Equals(spy.BuildKey)); }
public void MappingStrategyActuallyReturnsTheBuildKeyThePolicySpecifies() { MockBuilderContext context = new MockBuilderContext(); NamedTypeBuildKey fromKey = new NamedTypeBuildKey(typeof (ConcreteType), "id"); NamedTypeBuildKey toKey = new NamedTypeBuildKey(typeof (ITestType), "id"); context.Policies.Set<IBuildKeyMappingPolicy>(new BuildKeyMappingPolicy(toKey), fromKey); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = fromKey; context.Existing = null; context.Strategies.ExecuteBuildUp(context); Assert.IsInstanceOfType(spy.BuildKey, typeof (NamedTypeBuildKey)); Assert.AreEqual(toKey, spy.BuildKey); }
public void CanMapGenericsWithANonTypeBuildKey() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set<IBuildKeyMappingPolicy>( new GenericTypeBuildKeyMappingPolicy(new NamedTypeBuildKey(typeof(ConcreteType<>), "two")), new NamedTypeBuildKey(typeof(ITestType<>), "one")); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey(typeof(ITestType<int>), "one"); context.Strategies.ExecuteBuildUp(context); AssertExtensions.IsInstanceOfType(spy.BuildKey, typeof(NamedTypeBuildKey)); Assert.Equal(typeof(ConcreteType<int>), spy.BuildKey.Type); Assert.Equal("two", spy.BuildKey.Name); }
public void CanMapGenericsWithIdenticalGenericParameters() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set <IBuildKeyMappingPolicy>(new GenericTypeBuildKeyMappingPolicy( new NamedTypeBuildKey(typeof(ConcreteType <>))), new NamedTypeBuildKey(typeof(ITestType <>))); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey <ITestType <int> >(); context.Strategies.ExecuteBuildUp(context); Assert.Equal(new NamedTypeBuildKey(typeof(ConcreteType <int>)), spy.BuildKey); }
public void MappingStrategyActuallyReturnsTheBuildKeyThePolicySpecifies() { MockBuilderContext context = new MockBuilderContext(); NamedTypeBuildKey fromKey = new NamedTypeBuildKey(typeof(Foo), "id"); NamedTypeBuildKey toKey = new NamedTypeBuildKey(typeof(IFoo), "id"); context.Policies.Set <IBuildKeyMappingPolicy>(new BuildKeyMappingPolicy(toKey), fromKey); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = fromKey; context.Existing = null; context.Strategies.ExecuteBuildUp(context); Assert.IsInstanceOfType(spy.BuildKey, typeof(NamedTypeBuildKey)); Assert.AreEqual(toKey, spy.BuildKey); }
public void CanMapGenericsWithANonTypeBuildKey() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set <IBuildKeyMappingPolicy>( new GenericTypeBuildKeyMappingPolicy(new NamedTypeBuildKey(typeof(Foo <>), "two")), new NamedTypeBuildKey(typeof(IFoo <>), "one")); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey(typeof(IFoo <int>), "one"); context.Strategies.ExecuteBuildUp(context); Assert.IsInstanceOfType(spy.BuildKey, typeof(NamedTypeBuildKey)); Assert.AreEqual <object>(typeof(Foo <int>), BuildKey.GetType(spy.BuildKey)); Assert.AreEqual("two", ((NamedTypeBuildKey)spy.BuildKey).Name); }
public void CanMapGenericsWithANonTypeBuildKey() { MockBuilderContext context = new MockBuilderContext(); context.Policies.Set <IBuildKeyMappingPolicy>( new GenericTypeBuildKeyMappingPolicy(new NamedTypeBuildKey(typeof(ConcreteType <>), "two")), new NamedTypeBuildKey(typeof(ITestType <>), "one")); BuildKeyMappingStrategy strategy = new BuildKeyMappingStrategy(); context.Strategies.Add(strategy); SpyStrategy spy = new SpyStrategy(); context.Strategies.Add(spy); context.BuildKey = new NamedTypeBuildKey(typeof(ITestType <int>), "one"); context.Strategies.ExecuteBuildUp(context); AssertExtensions.IsInstanceOfType(spy.BuildKey, typeof(NamedTypeBuildKey)); Assert.Equal(typeof(ConcreteType <int>), spy.BuildKey.Type); Assert.Equal("two", spy.BuildKey.Name); }