Created
November 30, 2016 02:00
-
-
Save benjanderson/0b38eb6ec8d5c86619afec8d9d96780d to your computer and use it in GitHub Desktop.
auto fixture example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[TestMethod] | |
public void MyTestMethod() | |
{ | |
this.Container.RegisterType<FactoryBase<Entity>, CustomEntityFactory>(); | |
this.Container.RegisterType<FactoryBase<Binding>, CustomBinding1>("binding1"); | |
this.Container.RegisterType<FactoryBase<Binding>, CustomBinding2>("binding2"); | |
var fixture = this.Container.Resolve<IFixture>(); | |
fixture.Create<Binding>(); | |
fixture.Create<DataMart>(); | |
} | |
private class CustomEntityFactory : EntityFactory | |
{ | |
public CustomEntityFactory(FactoryBase<Field> fieldFactory, [Dependency("binding1")]FactoryBase<Binding> bindingFactory, FactoryBase<Connection> connectionFactory) :base(fieldFactory, bindingFactory, connectionFactory) | |
{ | |
} | |
} | |
private class CustomBinding1 : FactoryBase<Binding> | |
{ | |
public override void FixtureCustomizations(IFixture fixture) | |
{ | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.SourceConnection)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.SourceConnectionId)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.DataMart)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.DataMartId)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.Id)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.Status)); | |
fixture.Customize<Binding>(composer => composer.With(binding => binding.BindingType, BindingType.Sql)); | |
fixture.Customize<Binding>(composer => composer.With(binding => binding.Classification, BindingClassification.Generic)); | |
} | |
public sealed override void PostFixtureCustomizations(IFixture fixture, Binding binding) | |
{ | |
binding.BindingType = BindingType.Sql; | |
var objectAttributeValue = new BindingAttributeValue() | |
{ | |
AttributeName = ObjectAttributeValueName.UserDefinedSql, | |
Value = "SDFDSfsadlfakj" | |
}; | |
binding.AttributeValues.Add(objectAttributeValue); | |
} | |
} | |
private class CustomBinding2 : FactoryBase<Binding> | |
{ | |
public override void FixtureCustomizations(IFixture fixture) | |
{ | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.SourceConnection)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.SourceConnectionId)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.DataMart)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.DataMartId)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.Id)); | |
fixture.Customize<Binding>(composer => composer.Without(binding => binding.Status)); | |
fixture.Customize<Binding>(composer => composer.With(binding => binding.BindingType, BindingType.Sql)); | |
fixture.Customize<Binding>(composer => composer.With(binding => binding.Classification, BindingClassification.Generic)); | |
} | |
public sealed override void PostFixtureCustomizations(IFixture fixture, Binding binding) | |
{ | |
binding.BindingType = BindingType.Sql; | |
var objectAttributeValue = new BindingAttributeValue() | |
{ | |
AttributeName = ObjectAttributeValueName.UserDefinedSql, | |
Value = "SDFDSfsadlfakj" | |
}; | |
binding.AttributeValues.Add(objectAttributeValue); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment