public void DetermineMultiple_ReturnsExpected(ushort position, ulong expectedResult, params ulong[] numbers)
        {
            // Arrange
            var subject = new LinearMultiplesService();

            // Act
            var result = subject.DetermineMultiple(position, numbers);

            // Assert
            result.Should().Be(expectedResult);
        }
        public void DetermineMultiple_InvalidNumbers_ArgumentException(params ulong[] numbers)
        {
            // Arrange
            var subject = new LinearMultiplesService();

            // Act & Assert
            subject
            .Invoking(s => s.DetermineMultiple(2, numbers))
            .Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage("Every provided number argument must be greater than \"1\" (Parameter 'numbers')");
        }
        public void DetermineMultiple_EmptyNumbersList_ArgumentException()
        {
            // Arrange
            var subject = new LinearMultiplesService();

            // Act & Assert
            subject
            .Invoking(s => s.DetermineMultiple(2))
            .Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage("Argument cannot be an empty collection (Parameter 'numbers')");
        }
        public void DetermineMultiple_InvalidPosition_ArgumentException(int position)
        {
            // Arrange
            var subject = new LinearMultiplesService();

            // Act & Assert
            subject
            .Invoking(s => s.DetermineMultiple(position, 2))
            .Should()
            .ThrowExactly <ArgumentException>()
            .WithMessage("Argument must be greater than 0 (Parameter 'position')");
        }