public void SutIsSpecimenContainer() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); // Exercise system var sut = new DefaultSpecimenContainer(dummyBuilder); // Verify outcome Assert.IsInstanceOfType(sut, typeof(ISpecimenContainer)); // Teardown }
public void BuilderIsCorrect() { // Fixture setup var expectedBuilder = new DelegatingSpecimenBuilder(); var sut = new DefaultSpecimenContainer(expectedBuilder); // Exercise system ISpecimenBuilder result = sut.Builder; // Verify outcome Assert.AreEqual(expectedBuilder, result, "Builder"); // Teardown }
public void CreateWillReturnCorrectResult() { // Fixture setup var expectedResult = new object(); var builder = new DelegatingSpecimenBuilder { OnCreate = (r, c) => expectedResult }; var sut = new DefaultSpecimenContainer(builder); // Exercise system var dummyRequest = new object(); var result = sut.Create(dummyRequest); // Verify outcome Assert.AreEqual(expectedResult, result, "Create"); // Teardown }
public void TransformReturnsCorrectResultForDefaultRecursionDepth() { // Fixture setup var sut = new OmitOnRecursionBehavior(); // Exercise system var dummyBuilder = new DelegatingSpecimenBuilder(); var result = sut.Transform(dummyBuilder); // Verify outcome var rg = Assert.IsAssignableFrom <RecursionGuard>(result); Assert.IsAssignableFrom <OmitOnRecursionHandler>(rg.RecursionHandler); Assert.Equal(1, rg.RecursionDepth); // Teardown }
public void AddRaisesGraphChanged() { // Fixture setup var verified = false; this.sut.GraphChanged += (s, e) => verified = s != null && e != null; // Exercise system var dummyItem = new DelegatingSpecimenBuilder(); this.sut.Add(dummyItem); // Verify outcome Assert.True(verified); // Teardown }
public void ConstructWithBuilderAndHandlerAndComparerHasCorrectComparer() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummyHandler = new DelegatingRecursionHandler(); var expected = new DelegatingEqualityComparer(); var sut = new RecursionGuard(dummyBuilder, dummyHandler, expected); // Exercise system var actual = sut.Comparer; // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void ComposeSingleItemReturnsCorrectResult() { // Fixture setup var dummy = new DelegatingSpecimenBuilder(); var sut = this.CreateSut(dummy); var expected = new DelegatingSpecimenBuilder(); // Exercise system var actual = sut.Compose(new[] { expected }); // Verify outcome var mn = Assert.IsAssignableFrom <T>(actual); Assert.Equal(expected, this.GetBuilder(mn)); // Teardown }
public void ComposeWithNoBehaviorsReturnsCorrectResult() { // Fixture setup var expectedBuilder = new DelegatingSpecimenBuilder(); var composer = new DelegatingComposer <object> { OnCompose = () => expectedBuilder }; var sut = new BehaviorComposer <object>(composer); // Exercise system var result = sut.Compose(); // Verify outcome Assert.Equal(expectedBuilder, result); // Teardown }
public void ComposeRetainsComparer() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummyHandler = new DelegatingRecursionHandler(); var expected = new DelegatingEqualityComparer(); var sut = new RecursionGuard(dummyBuilder, dummyHandler, expected); // Exercise system var actual = sut.Compose(new ISpecimenBuilder[0]); // Verify outcome var rg = Assert.IsAssignableFrom <RecursionGuard>(actual); Assert.Equal(expected, rg.Comparer); // Teardown }
public void TransformReturnsCorrectResultForSpecificRecursionDepth() { // Fixture setup const int explicitRecursionDepth = 2; var sut = new NullRecursionBehavior(explicitRecursionDepth); // Exercise system var dummyBuilder = new DelegatingSpecimenBuilder(); var result = sut.Transform(dummyBuilder); // Verify outcome var rg = Assert.IsAssignableFrom <RecursionGuard>(result); Assert.IsAssignableFrom <NullRecursionHandler>(rg.RecursionHandler); Assert.Equal(explicitRecursionDepth, rg.RecursionDepth); // Teardown }
public void ConstructWithBuilderAndHandlerAndComparerHasCorrectBuilder() { // Fixture setup var expected = new DelegatingSpecimenBuilder(); var dummyHandler = new DelegatingRecursionHandler(); var dummyComparer = new DelegatingEqualityComparer(); #pragma warning disable 618 var sut = new RecursionGuard(expected, dummyHandler, dummyComparer); #pragma warning restore 618 // Exercise system var actual = sut.Builder; // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void ComposeSingleItemReturnsCorrectResult() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummyHandler = new DelegatingRecursionHandler(); var dummyComparer = new DelegatingEqualityComparer(); int dummyRecursionDepth = 2; var sut = new RecursionGuard(dummyBuilder, dummyHandler, dummyComparer, dummyRecursionDepth); // Exercise system var expected = new DelegatingSpecimenBuilder(); var actual = sut.Compose(new[] { expected }); // Verify outcome var rg = Assert.IsAssignableFrom <RecursionGuard>(actual); Assert.Equal(expected, rg.Builder); // Teardown }
public void FromBuilderFactoryReturnsCorrectResult() { // Fixture setup var expectedFactory = new DelegatingSpecimenBuilder(); var expectedComposer = new DelegatingComposer <Version>(); var composer = new DelegatingComposer <Version> { OnFromBuilder = f => f == expectedFactory ? expectedComposer : new DelegatingComposer <Version>() }; var sut = new BehaviorComposer <Version>(composer); // Exercise system var result = sut.FromFactory(expectedFactory); // Verify outcome var behaviorComposer = Assert.IsAssignableFrom <BehaviorPostprocessComposer <Version> >(result); Assert.Equal(expectedComposer, behaviorComposer.Composer); // Teardown }
public void SingleParameterDoWillInvokeMethodWithCorrectParameter( int expected) { // Fixture setup var builder = new DelegatingSpecimenBuilder(); builder.OnCreate = (r, c) => expected; var verified = false; var mock = new CommandMock <int>(); mock.OnCommand = x => verified = expected == x; // Exercise system builder.Do((int i) => mock.Command(i)); // Verify outcome Assert.True(verified, "Mock wasn't verified."); // Teardown }
public void CreateWillTriggerHandlingOnRecursiveRequests() { // Fixture setup var builder = new DelegatingSpecimenBuilder(); builder.OnCreate = (r, c) => c.Resolve(r); var sut = new DelegatingRecursionGuard(builder); bool handlingTriggered = false; sut.OnHandleRecursiveRequest = obj => handlingTriggered = true; var container = new DelegatingSpecimenContext(); container.OnResolve = (r) => sut.Create(r, container); // Exercise system sut.Create(Guid.NewGuid(), container); // Verify outcome Assert.True(handlingTriggered); }
public void CreateWillInvokeBuilderWithCorrectRequest() { // Fixture setup var expectedRequest = new object(); var mockVerified = false; var builderMock = new DelegatingSpecimenBuilder(); builderMock.OnCreate = (r, c) => { Assert.AreEqual(expectedRequest, r, "Create"); mockVerified = true; return new object(); }; var sut = new DefaultSpecimenContainer(builderMock); // Exercise system sut.Create(expectedRequest); // Verify outcome Assert.IsTrue(mockVerified, "Mock verification"); // Teardown }
public void CreateOnSpecimenBuilderReturnsCorrectResult() { // Fixture setup var expected = new DateTime(2012, 11, 20, 9, 45, 51); var builder = new DelegatingSpecimenBuilder(); builder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal( new SeededRequest(typeof(DateTime), default(DateTime)), r); return(expected); }; // Exercise system DateTime actual = builder.Create <DateTime>(); // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void CreateWillInvokeBuilderWithCorrectContainer() { // Fixture setup var mockVerified = false; var builderMock = new DelegatingSpecimenBuilder(); var sut = new DefaultSpecimenContainer(builderMock); builderMock.OnCreate = (r, c) => { Assert.AreEqual(sut, c, "Create"); mockVerified = true; return(new object()); }; // Exercise system var dummyRequest = new object(); sut.Create(dummyRequest); // Verify outcome Assert.IsTrue(mockVerified, "Mock verification"); // Teardown }
public void ComposeReturnsCorrectResult() { // Fixture setup var dummy = new DelegatingSpecimenBuilder(); var sut = this.CreateSut(dummy); // Exercise system var expected = new[] { new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder() }; var actual = sut.Compose(expected); // Verify outcome var mn = Assert.IsAssignableFrom <T>(actual); var builders = Assert.IsAssignableFrom <IEnumerable <ISpecimenBuilder> >( this.GetBuilder(mn)); Assert.True(expected.SequenceEqual(builders)); // Teardown }
public void ComposeReturnsCorrectResult() { // Fixture setup var dummyBuilder = new DelegatingSpecimenBuilder(); var dummyHandler = new DelegatingRecursionHandler(); var dummyComparer = new DelegatingEqualityComparer(); var sut = new RecursionGuard(dummyBuilder, dummyHandler, dummyComparer); // Exercise system var expectedBuilders = new[] { new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder(), new DelegatingSpecimenBuilder() }; var actual = sut.Compose(expectedBuilders); // Verify outcome var rg = Assert.IsAssignableFrom <RecursionGuard>(actual); var composite = Assert.IsAssignableFrom <CompositeSpecimenBuilder>(rg.Builder); Assert.True(expectedBuilders.SequenceEqual(composite)); // Teardown }
public void CreateWithSeedOnSpecimenBuilderReturnsCorrectResult() { // Fixture setup var seed = new Version(2, 15); var expected = new Version(3, 0); var builder = new DelegatingSpecimenBuilder(); builder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal( new SeededRequest(typeof(Version), seed), r); return(expected); }; // Exercise system Version actual = builder.Create <Version>(seed); // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void CreateReturnsCorrectResult() { // Fixture setup var request = new object(); var context = new DelegatingSpecimenContext(); var expected = new object(); var stub = new DelegatingSpecimenBuilder { OnCreate = (r, c) => { Assert.Equal(request, r); Assert.Equal(context, c); return(expected); } }; var sut = this.CreateSut(stub); // Exercise system var actual = sut.Create(request, context); // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void CreateAnonymousOnPostprocessComposerReturnsCorrectResult() { // Fixture setup var expectedResult = new DateTime(2010, 5, 31, 14, 52, 19); var specimenBuilder = new DelegatingSpecimenBuilder(); specimenBuilder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal(new SeededRequest(typeof(DateTime), default(DateTime)), r); return(expectedResult); }; var composer = new DelegatingComposer <DateTime> { OnCompose = () => specimenBuilder }; // Exercise system var result = composer.CreateAnonymous(); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void CreateManyOnPostprocessComposerReturnsCorrectResult() { // Fixture setup var expectedResult = Enumerable.Range(1, 17).Select(i => i.ToString()); var specimenBuilder = new DelegatingSpecimenBuilder(); specimenBuilder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal(new MultipleRequest(new SeededRequest(typeof(string), null)), r); return(expectedResult.Cast <object>()); }; var composer = new DelegatingComposer <string> { OnCompose = () => specimenBuilder }; // Exercise system var result = composer.CreateMany(); // Verify outcome Assert.True(expectedResult.SequenceEqual(result)); // Teardown }
public void CustomizeWithCompetingSpecimenBuilderForTheSameTypeShouldReturnTheFrozenSpecimen() { // Fixture setup var fixture = new Fixture(); var context = new SpecimenContext(fixture); var frozenType = typeof(object); var competingBuilder = new DelegatingSpecimenBuilder { OnCreate = (request, ctx) => request.Equals(frozenType) ? new object() : new NoSpecimen(request) }; var sut = new FreezeOnMatchCustomization( frozenType, new ExactTypeSpecification(frozenType)); // Exercise system fixture.Customizations.Add(competingBuilder); sut.Customize(fixture); // Verify outcome Assert.Equal(context.Resolve(frozenType), context.Resolve(frozenType)); }
public void CreateWillUseEqualityComparer() { // Fixture setup var builder = new DelegatingSpecimenBuilder(); builder.OnCreate = (r, c) => c.Resolve(r); bool comparerUsed = false; var comparer = new DelegatingEqualityComparer { OnEquals = (x, y) => comparerUsed = true }; var sut = new DelegatingRecursionGuard(builder, comparer); sut.OnHandleRecursiveRequest = (obj) => { return(null); }; var container = new DelegatingSpecimenContext(); container.OnResolve = (r) => sut.Create(r, container); // Exercise system sut.Create(Guid.NewGuid(), container); // Verify outcome Assert.True(comparerUsed); }
public void CreateReturnsResultFromInjectedHandlerWhenRequestIsMatched() { // Fixture setup var builder = new DelegatingSpecimenBuilder() { OnCreate = (r, ctx) => ctx.Resolve(r) }; var request = new object(); var expected = new object(); var handlerStub = new DelegatingRecursionHandler { OnHandleRecursiveRequest = (r, rs) => { Assert.Equal(request, r); Assert.NotNull(rs); return(expected); } }; var comparer = new DelegatingEqualityComparer { OnEquals = (x, y) => true }; var sut = new RecursionGuard(builder, handlerStub, comparer, 1); var context = new DelegatingSpecimenContext(); context.OnResolve = r => sut.Create(r, context); // Exercise system var actual = sut.Create(request, context); // Verify outcome Assert.Equal(expected, actual); // Teardown }
public void CreateSeededManyOnSpecimenBuilderComposerReturnsCorrectResult() { // Fixture setup var seed = TimeSpan.FromMinutes(48); var expectedResult = Enumerable.Range(1, 8).Select(i => TimeSpan.FromHours(i)); var specimenBuilder = new DelegatingSpecimenBuilder(); specimenBuilder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal(new MultipleRequest(new SeededRequest(typeof(TimeSpan), seed)), r); return(expectedResult.Cast <object>()); }; var composer = new DelegatingComposer { OnCompose = () => specimenBuilder }; // Exercise system var result = composer.CreateMany(seed); // Verify outcome Assert.True(expectedResult.SequenceEqual(result)); // Teardown }
public void CreateaSeededAnonymousOnSpecimenBuilderComposerReturnsCorrectResult() { // Fixture setup var seed = new Version(1, 1); var expectedResult = new Version(2, 0); var specimenBuilder = new DelegatingSpecimenBuilder(); specimenBuilder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal(new SeededRequest(typeof(Version), seed), r); return(expectedResult); }; var composer = new DelegatingComposer { OnCompose = () => specimenBuilder }; // Exercise system var result = composer.CreateAnonymous(seed); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }
public void CreateCountedManyOnSpecimenBuilderComposerReturnsCorrectResult() { // Fixture setup var count = 9; var expectedResult = Enumerable.Range(1, count).Select(i => i.ToString()); var specimenBuilder = new DelegatingSpecimenBuilder(); specimenBuilder.OnCreate = (r, c) => { Assert.NotNull(c); Assert.Equal(new FiniteSequenceRequest(new SeededRequest(typeof(string), null), count), r); return(expectedResult.Cast <object>()); }; ISpecimenBuilder composer = new DelegatingComposer { OnCreate = specimenBuilder.OnCreate }; // Exercise system var result = composer.CreateMany <string>(count); // Verify outcome Assert.True(expectedResult.SequenceEqual(result)); // Teardown }