public void CreateReturnsCorrectResultWithMinimumMaximumOnMultipleCall( double minimum, double maximum) { // Fixture setup var numbers = new Random(); var request = new RangedNumberRequest( typeof(double), minimum, maximum); var context = new DelegatingSpecimenContext { OnResolve = r => { Assert.Equal(request.OperandType, r); return((double)numbers.Next()); } }; var sut = new RangedNumberGenerator(); // Exercise system var result = Enumerable .Range(0, 33) .Select(x => sut.Create(request, context)) .Cast <double>(); // Verify outcome Assert.True( result.All(x => x >= minimum && x <= maximum)); // Teardown }
public void CreateWithNullContextThrows() { // Arrange var sut = new RangedNumberGenerator(); var dummyRequest = new object(); // Act & assert Assert.Throws <ArgumentNullException>(() => sut.Create(dummyRequest, null)); }
public void CreateWithNullContextThrows() { // Fixture setup var sut = new RangedNumberGenerator(); var dummyRequest = new object(); // Exercise system and verify outcome Assert.Throws <ArgumentNullException>(() => sut.Create(dummyRequest, null)); // Teardown }
public void CreateWithNullRequestReturnsCorrectResult() { // Arrange var sut = new RangedNumberGenerator(); var dummyContext = new DelegatingSpecimenContext(); // Act var result = sut.Create(null, dummyContext); // Assert Assert.Equal(new NoSpecimen(), result); }
public void CreateWithNullRequestReturnsCorrectResult() { // Fixture setup var sut = new RangedNumberGenerator(); var dummyContext = new DelegatingSpecimenContext(); // Exercise system var result = sut.Create(null, dummyContext); // Verify outcome Assert.Equal(new NoSpecimen(), result); // Teardown }
public void ReturnsSameNumberWhenMinimumAndMaximumAreSame(Type requestType) { // Arrange var range = Convert.ChangeType(42, requestType, CultureInfo.InvariantCulture); var sut = new RangedNumberGenerator(); var request = new RangedNumberRequest(requestType, range, range); var dummyContext = new DelegatingSpecimenContext(); // Act var result = sut.Create(request, dummyContext); // Assert Assert.Equal(range, result); }
public void CreateWithAnonymousRequestReturnsCorrectResult() { // Fixture setup var sut = new RangedNumberGenerator(); var dummyRequest = new object(); var dummyContext = new DelegatingSpecimenContext(); // Exercise system var result = sut.Create(dummyRequest, dummyContext); // Verify outcome #pragma warning disable 618 Assert.Equal(new NoSpecimen(dummyRequest), result); #pragma warning restore 618 // Teardown }
public void CreateWithDifferentOperandTypeDoesNotThrowOnMultipleCall(object minimum, object maximum) { // Fixture setup var numbers = new Random(); var request = new[] { new RangedNumberRequest( typeof(decimal), Convert.ChangeType(minimum, typeof(decimal)), Convert.ChangeType(maximum, typeof(decimal)) ), new RangedNumberRequest( typeof(double), Convert.ChangeType(minimum, typeof(double)), Convert.ChangeType(maximum, typeof(double)) ), new RangedNumberRequest( typeof(decimal), Convert.ChangeType(minimum, typeof(decimal)), Convert.ChangeType(maximum, typeof(decimal)) ) }; var context = new DelegatingSpecimenContext { OnResolve = r => { if (r.Equals(typeof(double))) { return(numbers.NextDouble()); } if (r.Equals(typeof(decimal))) { return(Convert.ToDecimal(numbers.Next())); } return(new NoSpecimen()); } }; var sut = new RangedNumberGenerator(); // Exercise system and verify outcome foreach (var r in request) { Assert.Null(Record.Exception(() => sut.Create(r, context))); } // Teardown }
public void ReturnsSameNumberWhenMinimumAndMaximumAreSame(Type requestType) { // Fixture setup var range = Convert.ChangeType(42, requestType, CultureInfo.InvariantCulture); var sut = new RangedNumberGenerator(); var request = new RangedNumberRequest(requestType, range, range); var dummyContext = new DelegatingSpecimenContext(); // Exercise system var result = sut.Create(request, dummyContext); // Verify outcome Assert.Equal(range, result); // Teardown }
public void CreateWithDifferentOperandTypeDoesNotThrowOnMultipleCall(object minimum, object maximum) { // Fixture setup var numbers = new Random(); var request = new[] { new RangedNumberRequest( typeof(decimal), Convert.ChangeType(minimum, typeof(decimal)), Convert.ChangeType(maximum, typeof(decimal)) ), new RangedNumberRequest( typeof(double), Convert.ChangeType(minimum, typeof(double)), Convert.ChangeType(maximum, typeof(double)) ), new RangedNumberRequest( typeof(decimal), Convert.ChangeType(minimum, typeof(decimal)), Convert.ChangeType(maximum, typeof(decimal)) ) }; var context = new DelegatingSpecimenContext { OnResolve = r => { if (r.Equals(typeof(double))) { return(numbers.NextDouble()); } if (r.Equals(typeof(decimal))) { return(Convert.ToDecimal(numbers.Next())); } #pragma warning disable 618 return(new NoSpecimen(r)); #pragma warning restore 618 } }; var sut = new RangedNumberGenerator(); // Exercise system and verify outcome Array.ForEach(request, r => Assert.DoesNotThrow(() => sut.Create(r, context))); // Teardown }
public void DoesNotThrowForHeterogeneousRequestsWithValuesGreaterThanInt16MaxValue() { var testCases = new[] { new { request = new RangedNumberRequest( typeof(short), (short)byte.MaxValue, short.MaxValue), contextStub = new DelegatingSpecimenContext { OnResolve = r => short.MaxValue } }, new { request = new RangedNumberRequest( typeof(int), (int)(short.MaxValue), int.MaxValue), contextStub = new DelegatingSpecimenContext { OnResolve = r => int.MaxValue } }, new { request = new RangedNumberRequest( typeof(short), (short)byte.MaxValue, short.MaxValue), contextStub = new DelegatingSpecimenContext { OnResolve = r => short.MaxValue } } }; var sut = new RangedNumberGenerator(); Func <int, object> actual = i => sut.Create(testCases[i].request, testCases[i].contextStub); Assert.Null(Record.Exception(() => Enumerable.Range(0, testCases.Length).Select(actual).ToList())); }
public void CreateReturnsCorrectResult(Type operandType, object minimum, object maximum, object contextValue, object expectedResult) { // Arrange var sut = new RangedNumberGenerator(); var request = new RangedNumberRequest(operandType, minimum, maximum); var context = new DelegatingSpecimenContext { OnResolve = r => { Assert.Equal(request.OperandType, r); return(contextValue); } }; // Act var result = sut.Create(request, context); // Assert Assert.Equal(expectedResult, result); }
public void CreateReturnsCorrectResult(Type operandType, object minimum, object maximum, object contextValue, object expectedResult) { // Fixture setup var sut = new RangedNumberGenerator(); var request = new RangedNumberRequest(operandType, minimum, maximum); var context = new DelegatingSpecimenContext { OnResolve = r => { Assert.Equal(request.OperandType, r); return(contextValue); } }; // Exercise system var result = sut.Create(request, context); // Verify outcome Assert.Equal(expectedResult, result); // Teardown }