public void _02_Convert_ShouldSortTheNumbersByPosition() { //Arrange var drawNumber5 = new DrawNumberBuilder(_random).WithPosition(5).Build(); var drawNumber10 = new DrawNumberBuilder(_random).WithPosition(10).Build(); var drawNumber1 = new DrawNumberBuilder(_random).WithPosition(1).Build(); var drawNumberWithoutPosition = new DrawNumberBuilder(_random).Build(); var drawedNumbers = new Collection <DrawNumber> { drawNumber5, drawNumber10, drawNumber1, drawNumberWithoutPosition }; //Act object result = null; try { result = _converter.Convert(drawedNumbers, null, null, null); } catch (InvalidCastException) { Assert.Fail("An InvalidCastException is thrown when the value is a Collection<DrawNumber>. " + "Cast to an IEnumerable<DrawNumber> to be able to handle more collection types."); } //Assert Assert.That(result, Is.Not.Null, () => "The converted object should not be null."); Assert.That(result, Is.TypeOf <string>(), () => $"The converted object should be a string, but was '{result.GetType().FullName}'."); var numberString = (string)result; List <int> numbers = null; try { numbers = numberString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(n => int.Parse(n.Trim())).ToList(); } catch (Exception) { Assert.Fail("The converted string is not a list of numbers separated by a comma."); } Assert.That(numbers, Has.Count.EqualTo(drawedNumbers.Count), "The converted string does not contain all the numbers."); Assert.That(numbers[0], Is.EqualTo(drawNumberWithoutPosition.Number), "Incorrect order. Numbers without a position should be first."); Assert.That(numbers[1], Is.EqualTo(drawNumber1.Number), "Incorrect order."); Assert.That(numbers[2], Is.EqualTo(drawNumber5.Number), "Incorrect order."); Assert.That(numbers[3], Is.EqualTo(drawNumber10.Number), "Incorrect order."); }
public DrawBuilder WithRandomDrawNumbers(int minimumAmount, int maximumAmount) { _draw.DrawNumbers = new List <DrawNumber>(); var amountOfNumbers = _random.Next(minimumAmount, maximumAmount + 1); for (int i = 0; i < amountOfNumbers; i++) { var drawNumber = new DrawNumberBuilder(_random).WithNumber(i + 1).Build(); _draw.DrawNumbers.Add(drawNumber); } return(this); }