public void CreateWithNullContainerThrows() { // Fixture setup var sut = new FiniteSequenceRelay(); var dummyRequest = new object(); // Exercise system and verify outcome Assert.Throws<ArgumentNullException>(() => sut.Create(dummyRequest, null)); // Teardown }
public void CreateWithInvalidRequestReturnsCorrectResult(object request) { // Fixture setup var sut = new FiniteSequenceRelay(); // Exercise system var dummyContainer = new DelegatingSpecimenContext(); var result = sut.Create(request, dummyContainer); // Verify outcome #pragma warning disable 618 var expectedResult = new NoSpecimen(request); #pragma warning restore 618 Assert.Equal(expectedResult, result); // Teardown }
public void CreateWithFiniteSequenceRequestReturnsCorrectResult() { // Fixture setup var request = new object(); var count = 3; var manyRequest = new FiniteSequenceRequest(request, count); var expectedResult = new object(); var container = new DelegatingSpecimenContext { OnResolve = r => request.Equals(r) ? expectedResult : new NoSpecimen() }; var sut = new FiniteSequenceRelay(); // Exercise system var result = sut.Create(manyRequest, container); // Verify outcome var actual = Assert.IsAssignableFrom<IEnumerable<object>>(result); Assert.True(actual.All(expectedResult.Equals)); // Teardown }
public void CreateFiltersOmitSpecimenInstances() { // Fixture setup var request = new object(); var count = 3; var manyRequest = new FiniteSequenceRequest(request, count); var results = new object[] { new object(), new OmitSpecimen(), new object() }; var q = new Queue<object>(results); var context = new DelegatingSpecimenContext { #pragma warning disable 618 OnResolve = r => request.Equals(r) ? q.Dequeue() : new NoSpecimen(r) #pragma warning restore 618 }; var sut = new FiniteSequenceRelay(); // Exercise system var actual = sut.Create(manyRequest, context); // Verify outcome var iter = Assert.IsAssignableFrom<IEnumerable<object>>(actual); Assert.True( results.Where(x => !(x is OmitSpecimen)).SequenceEqual(iter)); // Teardown }