protected void ButtonAdd_Click(object sender, EventArgs e) { var договор = new Договор() { номерДоговора = TextBoxNumber.Text, Информация = TextBoxName.Text, }; DataServiceProvider.Current.AddDogovor(договор); Session["IsDogovorAdded"] = true; Response.Redirect(Request.Url.AbsoluteUri); }
public void TestGetCodeForRecordBook_IncorrectDogovorNumber_TooShort() // слишком короткий номер + не соответствует шаблону { ///Arrange. var договор = new Договор() { номерДоговора = "2рв2в", Информация = "Информация для тестового договора." }; var expectedКорректность = false; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_IncorrectDogovorNumber_OnlyLetters() // только буквы { ///Arrange. var договор = new Договор() { номерДоговора = "аругылару", Информация = "Информация для тестового договора." }; var expectedКорректность = false; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_CorrectDogovorNumber_Registrs() // разный регистр букв и разные языки (2 теста в одном) { ///Arrange. var договор = new Договор() { номерДоговора = "341NqЩ231", Информация = "Информация для тестового договора." }; var expectedКорректность = true; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_CorrectDogovorNumber_CorrectSymbols() // номер с допустимыми символами -()/. { ///Arrange. var договор = new Договор() { номерДоговора = "341fh/231", Информация = "Информация для тестового договора." }; var expectedКорректность = true; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_InorrectDogovorNumber_EmptyInformation() // не введена информация { ///Arrange. var договор = new Договор() { номерДоговора = "341фрп231", Информация = "" }; var expectedКорректность = false; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_СorrectDogovorNumber2() // номер в виде 0ААА000 для шаблона 000ААА000. { ///Arrange. var договор = new Договор() { номерДоговора = "1оар374", // = 001оар374 Информация = "Информация для тестового договора." }; var expectedКорректность = true; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_IncorrectDogovorNumber_EmptyNumber() // не введен номер договора { ///Arrange. var договор = new Договор() { номерДоговора = "", Информация = "Информация для тестового договора." }; var expectedКорректность = false; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_IncorrectDogovorNumber_Almost() // частично правильный номер: ААА000 { ///Arrange. var договор = new Договор() { номерДоговора = "врп231", Информация = "Информация для тестового договора." }; var expectedКорректность = false; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
public void TestGetCodeForRecordBook_CorrectDogovor() // с русскими буквами { ///Arrange. var договор = new Договор() { номерДоговора = "273икр729", Информация = "Информация для тестового договора." }; //var expectedКодДоговора = "2a"; var expectedКорректность = true; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); }
/// <summary> /// Добавляет договоры в хранилище. /// </summary> /// <param name="договор"> /// Договор, который необходимо добавить в хранилище /// </param> public void AddDogovor(Договор договор) { if (CheckNumber.GetCodeForRecordBook(договор) == true) { var номер = договор.номерДоговора; foreach (Договор c in _dogovorsStorage) { if (c.номерДоговора == номер) { throw new Exception("Договор с таким номером уже существует!"); } } _dogovorsStorage.Add(договор); } else { throw new Exception("Номер договора некорректен или есть незаполненные поля!"); } }
public void TestGetCodeForRecordBook_CorrectDogovorNumber1() // с английскими буквами { ///Arrange. var договор = new Договор() { номерДоговора = "273dhw729", Информация = "Информация для тестового договора." }; ///Act. // var ex = Assert.Throws<ArgumentNullException>(() => CheckNumber.GetCodeForRecordBook(договор)); var expectedКорректность = true; ///Act. var Корректность = CheckNumber.GetCodeForRecordBook(договор); ///Assert. Assert.Equal(expectedКорректность, Корректность); ///Assert. // Assert.Contains("Некорректный номер договора", ex.Message); }
public static bool GetCodeForRecordBook(Договор договор) { var эталон = "000AAA000"; // шаблон, с которым будет сверяться введенный номер договора. "0" - цифра, "А" - буква string symb = "0123456789"; char[] числа = symb.ToCharArray(); string symb2 = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNM-()/.";//допустимые символы (нет проверки на несколько "-()/." подряд, несложно доделать) char[] буквы = symb2.ToCharArray(); var номерДоговора = договор.номерДоговора.ToUpper(); var count = 0; int длинаНомераДоговора = номерДоговора.Length; int длинаЭталона = эталон.Length; int разница = (длинаЭталона - длинаНомераДоговора); var корректность = true; // во избежание выполнения лишнего кода return стоит в 4 местах ниже if (договор.Информация == "") { return(корректность = false); } else { if (разница < 0) // если введенный номер больше эталона (в самом элементе формы стоит ограничение на 12 символов) { // номерДоговора = "Некорректное значение!"; return(корректность = false); } else { var массив = Encoding.Default.GetChars(Encoding.Default.GetBytes(эталон)); for (int i = 0; i < массив.Length; i++) { if (массив[i] == '0') { count = длинаЭталона - i; // если формат 00А0, то если вводим 1А4 и 01А4, это одно и то же. Поэтому нужно... } else if (массив[i] == 'A') { if ((i == 0) && (разница != 0))// .... вот это условие { // номерДоговора = "Некорректное значение! первой должна быть буква"; корректность = false; } break; } } if (длинаНомераДоговора < count) { // номерДоговора = "Некорректное значение! длина меньше"; return(корректность = false); } var массив1 = Encoding.Default.GetChars(Encoding.Default.GetBytes(номерДоговора)); for (int i = 0; i < массив1.Length; i++) // переводим введенный номер в код для сравнения с эталоном (распознаем цифры и допустимые символы) { foreach (char a in числа) { foreach (char b in буквы) { if (массив1[i] == a) { массив1[i] = '0'; continue; } else { if (массив1[i] == b) { массив1[i] = 'A'; } else if (массив1[i] == ' ') { // номерДоговора = "Некорректное значение! Уберите пробел"; корректность = false; break; } } } } } for (int i = 0; i < массив1.Length; i++) { if (массив1[i] != массив[i + разница]) { // номерДоговора = "Некорректное значение! не совпадает с эталоном"; корректность = false; break; } } } return(корректность); } }
/// <summary> /// Добавляет договоры в хранилище. /// </summary> /// <param name="договор"> /// Договор, который необходим добавить в хранилище /// </param> public void AddDogovor(Договор договор) { }