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")); } } }