using REG_MARK_LIB;
namespace UnitTests
{
///
/// Класс тестов низкой сложности
///
public class TestsOfLowDifficult
{
// Тест функции GetNextMarkAfter, проверка на изменение числа в составе номера
[Fact]
public void TestGetNextMarkAfterWithCorrectData()
{
Assert.Equal("T357CK42", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("T356CK42"));
}
// Тест функции GetNextMarkAfter, проверка на изменение первой буквы в составе номера
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnFirstLetter()
{
Assert.Equal("Y001OK52", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("T999OK52"));
}
// Тест функции CheckMark, с правильным номером
[Fact]
public void TestMarkWithCorrectDataCheck()
{
Assert.True(REG_MARK_LIB.REG_MARK_LIB.CheckMark("a999aa99"));
}
// Тест функции GetNextMarkAfterInRange, при изначальном номере не входящем в диапазон (больше)
[Fact]
public void TestGetNextMarkAfterInRangeWithIncorrectDataBiggerThanEnd()
{
Assert.Equal("out of stock", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("X999YX52", "A001AA52", "X999OX52"));
}
// Тест функции GetNextMarkAfterInRange, при некорректном диапазоне
[Fact]
public void TestGetNextMarkAfterInRangeWithIncorrectDataIncorrectBounds()
{
Assert.Equal("out of stock", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("X999YX52", "X999OX52", "A001AA52"));
}
// Тест функции CheckMark, с неправильным номером
[Fact]
public void TestMarkWithIncorrectDataCheckOnSecondNumber()
{
Assert.False(REG_MARK_LIB.REG_MARK_LIB.CheckMark("a999aa999"));
}
// Тест функции GetNextMarkAfter, проверка на изменение третей буквы в составе номера
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnThirdLetter()
{
Assert.Equal("A001OM42", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("X999OK42"));
}
// Тест функции GetNextMarkAfterInRange, при изначальном номере не входящем в диапазон (меньше)
[Fact]
public void TestGetNextMarkAfterInRangeWithIncorrectDataSmallerThanStart()
{
Assert.Equal("out of stock", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("A003OM42", "X999OX52", "X999XX52"));
}
// Тест функции GetCombinationsCountInRange, с обычными данными
[Fact]
public void TestGetCombinationsCountInRangeWithCorrectData()
{
Assert.Equal(2, REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("M356OK52", "M357OK52"));
}
// Тест функции GetCombinationsCountInRange, с перевернутыми границами
[Fact]
public void TestGetCombinationsCountInRangeWithCorrectDataReverse()
{
Assert.Equal(2, REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("M357OK52", "M356OK52"));
}
// Тест функции GetCombinationsCountInRange, с одинаковыми границами
[Fact]
public void TestGetCombinationsCountInRangeWithCorrectDataEqualsBounds()
{
Assert.Equal(1, REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("M356OK52", "M356OK52"));
}
// Тест функции GetNextMarkAfter, проверка на изменение второй буквы в составе номера
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnSecondLetter()
{
Assert.Equal("A001OM42", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("X999OK42"));
}
// Тест функции GetNextMarkAfterInRange, с корректными данными
[Fact]
public void TestGetNextMarkAfterInRangeWithCorrectData()
{
Assert.Equal("A001PA42", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("X999OX42", "A001AA42", "X999XX42"));
}
}
///
/// Класс тестов высокой сложности
///
public class TestsOfHighDifficult
{
// Тест функции CheckMark, при передаче null
[Fact]
public void TestCheckMarkOnNull()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.CheckMark(null));
}
// Тест функции GetNextMarkAfterInRange, при передаче не номера
[Fact]
public void TestGetNextMarkAfterInRangeOnNotMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("Hello world!", "a999aa42", "a999aa42"));
}
// Тест функции GetNextMarkAfter, при передаче номера, для которого нет следующего номера
[Fact]
public void TestGetNextMarkAfterOnNotNextMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("x999xx42"));
}
// Тест функции GetNextMarkAfter, при передаче не номера
[Fact]
public void TestGetNextMarkAfterOnNotMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("Hello world!"));
}
// Тест функции GetCombinationsCountInRange, при передаче не номера
[Fact]
public void TestGetCombinationsCountInRangeOnNotMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("Hello world!", "a999aa42"));
}
}
}