public void ShouldUseInitialRequestAndReturnedRandomNumberForFiniteSequenceRequest() { // Arrange var request = new object(); var rsr = new RangedSequenceRequest(request, minLength: 10, maxLength: 20); var sequenceLength = 42; FiniteSequenceRequest capturedSequenceRequest = null; var context = new DelegatingSpecimenContext { OnResolve = r => { if (r is RangedNumberRequest) { return(sequenceLength); } if (r is FiniteSequenceRequest fsr) { capturedSequenceRequest = fsr; } return(new NoSpecimen()); } }; var sut = new RangedSequenceRelay(); // Act sut.Create(rsr, context); // Assert var expectedSequenceRequest = new FiniteSequenceRequest(request, sequenceLength); Assert.Equal(expectedSequenceRequest, capturedSequenceRequest); }
public void CreateFiltersOmitSpecimenInstances() { // Arrange 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 { OnResolve = r => request.Equals(r) ? q.Dequeue() : new NoSpecimen() }; var sut = new StableFiniteSequenceRelay(); // Act var actual = sut.Create(manyRequest, context); // Assert var iter = Assert.IsAssignableFrom <IEnumerable <object> >(actual); Assert.True( results.Where(x => !(x is OmitSpecimen)).SequenceEqual(iter), "Actual sequence is not equal to expected sequence."); }
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 { OnResolve = r => request.Equals(r) ? q.Dequeue() : new NoSpecimen(r) }; 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 }
public void SutIsEquatable() { // Arrange var dummyCount = 3; // Act var sut = new FiniteSequenceRequest(new object(), dummyCount); // Assert Assert.IsAssignableFrom <IEquatable <FiniteSequenceRequest> >(sut); }
public void SutIsEquatable() { // Fixture setup var dummyCount = 3; // Exercise system var sut = new FiniteSequenceRequest(new object(), dummyCount); // Verify outcome Assert.IsAssignableFrom<IEquatable<FiniteSequenceRequest>>(sut); // Teardown }
public void SutDoesNotEqualNullSut() { // Fixture setup var sut = new FiniteSequenceRequest(new object(), 3); FiniteSequenceRequest other = null; // Exercise system var result = sut.Equals(other); // Verify outcome Assert.False(result, "Equals"); // Teardown }
public void SutDoesNotEqualAnonymousObject() { // Arrange var sut = new FiniteSequenceRequest(new object(), 3); object anonymousObject = new ConcreteType(); // Act var result = sut.Equals(anonymousObject); // Assert Assert.False(result, "Equals"); }
public void SutDoesNotEqualNullSut() { // Arrange var sut = new FiniteSequenceRequest(new object(), 3); FiniteSequenceRequest other = null; // Act var result = sut.Equals(other); // Assert Assert.False(result, "Equals"); }
public void SutIsEquatable() { // Fixture setup var dummyCount = 3; // Exercise system var sut = new FiniteSequenceRequest(new object(), dummyCount); // Verify outcome Assert.IsAssignableFrom <IEquatable <FiniteSequenceRequest> >(sut); // Teardown }
public void CreateRequestsReturnsCorrectResult(int requestedCount) { // Arrange var expectedRequest = new object(); var sut = new FiniteSequenceRequest(expectedRequest, requestedCount); // Act var result = sut.CreateRequests().ToList(); // Assert Assert.Equal(requestedCount, result.Count); Assert.True(result.All(expectedRequest.Equals)); }
public void SutDoesNotEqualAnonymousObject() { // Fixture setup var sut = new FiniteSequenceRequest(new object(), 3); object anonymousObject = new FileStyleUriParser(); // Exercise system var result = sut.Equals(anonymousObject); // Verify outcome Assert.False(result, "Equals"); // Teardown }
public void SutDoesNotEqualOtherSutWhenRequestsDifferButCountsMatch() { // Arrange var count = 1; var sut = new FiniteSequenceRequest(new object(), count); var other = new FiniteSequenceRequest(new object(), count); // Act var result = sut.Equals(other); // Assert Assert.False(result, "Equals"); }
public void CreateRequestsReturnsCorrectResult(int requestedCount) { // Fixture setup var expectedRequest = new object(); var sut = new FiniteSequenceRequest(expectedRequest, requestedCount); // Exercise system var result = sut.CreateRequests().ToList(); // Verify outcome Assert.Equal(requestedCount, result.Count); Assert.True(result.All(expectedRequest.Equals)); // Teardown }
public void SutDoesNotEqualOtherSutWhenCountsDiffer() { // Arrange var request = new object(); var sut = new FiniteSequenceRequest(request, 1); var other = new FiniteSequenceRequest(request, 2); // Act var result = sut.Equals(other); // Assert Assert.False(result, "Equals"); }
public void SutEqualsOtherSutWhenBothRequestsAndCountMatch() { // Arrange var request = new object(); var count = 4; var sut = new FiniteSequenceRequest(request, count); var other = new FiniteSequenceRequest(request, count); // Act var result = sut.Equals(other); // Assert Assert.True(result, "Equals"); }
public void SutDoesNotEqualOtherSutWhenCountsDiffer() { // Fixture setup var request = new object(); var sut = new FiniteSequenceRequest(request, 1); var other = new FiniteSequenceRequest(request, 2); // Exercise system var result = sut.Equals(other); // Verify outcome Assert.False(result, "Equals"); // Teardown }
public void SutDoesNotEqualOtherObjectWhenRequestsDifferButCountsMatch() { // Fixture setup var count = 1; var sut = new FiniteSequenceRequest(new object(), count); object other = new FiniteSequenceRequest(new object(), count); // Exercise system var result = sut.Equals(other); // Verify outcome Assert.False(result, "Equals"); // Teardown }
public void GetHashCodeWhenCountIsSpecifiedReturnsCorrectResult() { // Arrange var request = new object(); var count = 19; var sut = new FiniteSequenceRequest(request, count); // Act var result = sut.GetHashCode(); // Assert var expectedHashCode = request.GetHashCode() ^ count.GetHashCode(); Assert.Equal(expectedHashCode, result); }
public void SutEqualsOtherSutWhenBothRequestsAndCountMatch() { // Fixture setup var request = new object(); var count = 4; var sut = new FiniteSequenceRequest(request, count); var other = new FiniteSequenceRequest(request, count); // Exercise system var result = sut.Equals(other); // Verify outcome Assert.True(result, "Equals"); // Teardown }
public void CreateWithFiniteSequenceRequestConstrainedbyMinAndMaxLengthReturnsCorrectResult(int min, int max) { // Arrange var memberType = typeof(string[]); var randomNumberWithinRange = (min + max) / 2; var minLengthAttribute = new MinLengthAttribute(min); var maxLengthAttribute = new MaxLengthAttribute(max); var request = new FakeMemberInfo( new ProvidedAttribute(minLengthAttribute, true), new ProvidedAttribute(maxLengthAttribute, true)); var expectedRangedNumberRequest = new RangedNumberRequest(typeof(int), min, max); var expectedFiniteSequenceRequest = new FiniteSequenceRequest( memberType.GetElementType(), randomNumberWithinRange); var expectedResult = new List <string>(); var context = new DelegatingSpecimenContext { OnResolve = r => { if (r.Equals(expectedRangedNumberRequest)) { return(randomNumberWithinRange); } if (r.Equals(expectedFiniteSequenceRequest)) { return(expectedResult); } return(new NoSpecimen()); } }; var sut = new MinAndMaxLengthAttributeRelay { RequestMemberTypeResolver = new DelegatingRequestMemberTypeResolver { OnTryGetMemberType = r => memberType } }; // Act var result = sut.Create(request, context); // Assert Assert.Equal(expectedResult, result); }
public void GetHashCodeWhenCountIsSpecifiedReturnsCorrectResult() { // Fixture setup var request = new object(); var count = 19; var sut = new FiniteSequenceRequest(request, count); // Exercise system var result = sut.GetHashCode(); // Verify outcome var expectedHashCode = request.GetHashCode() ^ count.GetHashCode(); Assert.Equal(expectedHashCode, 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 CreateReturnsStableSequence() { // Arrange var request = new object(); var count = 3; var manyRequest = new FiniteSequenceRequest(request, count); var context = new DelegatingSpecimenContext { OnResolve = r => request.Equals(r) ? new object() : new NoSpecimen() }; var sut = new StableFiniteSequenceRelay(); // Act var result = sut.Create(manyRequest, context); // Assert var expected = Assert.IsAssignableFrom <IEnumerable <object> >(result); Assert.True(expected.SequenceEqual(expected)); }
public void CreateWithFiniteSequenceRequestReturnsCorrectResult() { // Arrange 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(); // Act var result = sut.Create(manyRequest, container); // Assert var actual = Assert.IsAssignableFrom <IEnumerable <object> >(result); Assert.True(actual.All(expectedResult.Equals)); }
public void CreateReturnsStableSequence() { // Fixture setup var request = new object(); var count = 3; var manyRequest = new FiniteSequenceRequest(request, count); var context = new DelegatingSpecimenContext { OnResolve = r => request.Equals(r) ? new object() : new NoSpecimen(r) }; var sut = new StableFiniteSequenceRelay(); // Exercise system var result = sut.Create(manyRequest, context); // Verify outcome var expected = Assert.IsAssignableFrom <IEnumerable <object> >(result); Assert.True(expected.SequenceEqual(expected)); // Teardown }
public void CreateWithManyRequestReturnsCorrectResult() { // Arrange var request = new MultipleRequest(new object()); var count = 7; var expectedTranslation = new FiniteSequenceRequest(request.Request, 7); var expectedResult = new object(); var container = new DelegatingSpecimenContext { OnResolve = r => expectedTranslation.Equals(r) ? expectedResult : new NoSpecimen() }; var sut = new MultipleRelay { Count = count }; // Act var result = sut.Create(request, container); // Assert Assert.Equal(expectedResult, result); }
public void CreateWithManyRequestReturnsCorrectResult() { // Fixture setup var request = new MultipleRequest(new object()); var count = 7; var expectedTranslation = new FiniteSequenceRequest(request.Request, 7); var expectedResult = new object(); var container = new DelegatingSpecimenContext { OnResolve = r => expectedTranslation.Equals(r) ? expectedResult : new NoSpecimen(r) }; var sut = new MultipleRelay { Count = count }; // Exercise system var result = sut.Create(request, container); // Verify outcome Assert.Equal(expectedResult, result); // 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 }
public void CreateReturnsStableSequence() { // Fixture setup var request = new object(); var count = 3; var manyRequest = new FiniteSequenceRequest(request, count); #pragma warning disable 618 var context = new DelegatingSpecimenContext { OnResolve = r => request.Equals(r) ? new object() : new NoSpecimen(r) }; #pragma warning restore 618 var sut = new StableFiniteSequenceRelay(); // Exercise system var result = sut.Create(manyRequest, context); // Verify outcome var expected = Assert.IsAssignableFrom<IEnumerable<object>>(result); Assert.True(expected.SequenceEqual(expected)); // Teardown }