namespace UnitTests
{
///
/// Класс тестов низкой сложности
///
public class LowDifficult
{
///
/// Тест функции CheckMark, с правильным номером
///
[Fact]
public void TestCheckMarkWithCorrectData()
{
Assert.True(REG_MARK_LIB.REG_MARK_LIB.CheckMark("a999aa99"));
}
///
/// Тест функции CheckMark, с неправильным номером
///
[Fact]
public void TestCheckMarkWithIncorrectData()
{
Assert.False(REG_MARK_LIB.REG_MARK_LIB.CheckMark("a999aa999"));
}
///
/// Тест функции GetNextMarkAfter, проверка на изменение числа в составе номера
///
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnSecondNumber()
{
Assert.Equal("T357OK52", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("T356OK52"));
}
///
/// Тест функции GetNextMarkAfter, проверка на изменение первой буквы в составе номера
///
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnFirstLetter()
{
Assert.Equal("Y001OK52", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("T999OK52"));
}
///
/// Тест функции GetNextMarkAfter, проверка на изменение третей буквы в составе номера
///
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnThirdLetter()
{
Assert.Equal("A001OM52", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("X999OK52"));
}
///
/// Тест функции GetNextMarkAfter, проверка на изменение второй буквы в составе номера
///
[Fact]
public void TestGetNextMarkAfterWithCorrectDataOnSecondLetter()
{
Assert.Equal("A001PA52", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("X999OX52"));
}
///
/// Тест функции GetNextMarkAfterInRange, с корректными данными
///
[Fact]
public void TestGetNextMarkAfterInRangeWithCorrectData()
{
Assert.Equal("A001PA52", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("X999OX52", "A001AA52", "X999XX52"));
}
///
/// Тест функции GetNextMarkAfterInRange, при изначальном номере не входящем в диапазон (меньше)
///
[Fact]
public void TestGetNextMarkAfterInRangeWithIncorrectDataSmallerThanStart()
{
Assert.Equal("out of stock", REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("A001AA52", "X999OX52", "X999XX52"));
}
///
/// Тест функции 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"));
}
///
/// Тест функции GetCombinationsCountInRange, с обычными данными
///
[Fact]
public void TestGetCombinationsCountInRangeWithCorrectData()
{
Assert.Equal(2, REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("T356OK52", "T357OK52"));
}
///
/// Тест функции GetCombinationsCountInRange, с перевернутыми границами
///
[Fact]
public void TestGetCombinationsCountInRangeWithCorrectDataReverse()
{
Assert.Equal(2, REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("T357OK52", "T356OK52"));
}
///
/// Тест функции GetCombinationsCountInRange, с одинаковыми границами
///
[Fact]
public void TestGetCombinationsCountInRangeWithCorrectDataEqualsBounds()
{
Assert.Equal(1, REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("T356OK52", "T356OK52"));
}
}
///
/// Класс тестов высокой сложности
///
public class HighDifficult
{
///
/// Тест функции CheckMark, при передаче null
///
[Fact]
public void TestCheckMarkOnNull()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.CheckMark(null));
}
///
/// Тест функции GetNextMarkAfter, при передаче не номера
///
[Fact]
public void TestGetNextMarkAfterOnNotMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("Hello world!"));
}
///
/// Тест функции GetNextMarkAfter, при передаче номера, для которого нет следующего номера
///
[Fact]
public void TestGetNextMarkAfterOnNotNextMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfter("x999xx52"));
}
///
/// Тест функции GetNextMarkAfterInRange, при передаче не номера
///
[Fact]
public void TestGetNextMarkAfterInRangeOnNotMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetNextMarkAfterInRange("Hello world!", "a999aa52", "a999aa52"));
}
///
/// Тест функции GetCombinationsCountInRange, при передаче не номера
///
[Fact]
public void TestGetCombinationsCountInRangeOnNotMark()
{
Assert.Throws(() => REG_MARK_LIB.REG_MARK_LIB.GetCombinationsCountInRange("Hello world!", "a999aa52"));
}
}
}