Exemplo n.º 1
0
        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.");
        }
Exemplo n.º 2
0
        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);
        }