/// <summary> /// Добавляет объект в хранилище по двум алгоритмам. /// </summary> /// <param name="consumer"> /// Объект, который необходимо добавить в хранилище /// </param> public void AddConsumer(Consumer consumer) { var CodeConsumer = Logic1.GenerateCode(consumer); var availableConsumers = from с in _consumersStorage where Logic1.GenerateCode(с) == CodeConsumer select с; var CodeConsumer2 = Logic2.GenerateCode(consumer); var availableConsumers2 = from с in _consumersStorage where Logic2.GenerateCode(с) == CodeConsumer select с; if (availableConsumers.FirstOrDefault() != null) { //return; throw new Exception("Невозможно добавить объект с такими данными, т.к. код для него не будет уникальным!"); } if (availableConsumers2.FirstOrDefault() != null) { //return; throw new Exception("Невозможно добавить объект с такими данными, т.к. код для него не будет уникальным!"); } _consumersStorage.Add(consumer); }
public void TC_L2_Incorrect_empty_ls() { ///Тестовые данные. var TestConsumer = new Consumer() { Name = "РогаКопыта", DateReg = new DateTime(2017, 01, 01), //Account = null }; ///Запуск теста. var ex = Assert.Throws <ArgumentNullException>(() => Logic2.GenerateCode(TestConsumer)); ///Сравнение. Assert.Contains("Не заполнены все поля формы", ex.Message); }
public void TC_L2_Correct_short() { ///Тестовые данные. var TestConsumer = new Consumer() { Name = "Р", DateReg = new DateTime(2017, 01, 01), Account = 1, }; //правильное решение var expectedCode = "0000001____Р170101"; ///Запуск теста. var Code = Logic2.GenerateCode(TestConsumer); ///Сравнение. Assert.Equal(expectedCode, Code); }
/// <summary> /// Получает объект из хранилища по коду алгоритма 2. /// </summary> /// <param name="CodeConsumer"> /// Код, который необходимо использовать для получения объекта из хранилища. /// </param> /// <returns> /// Объект, найденный в хранилище данных, либо <c>null</c>. /// </returns> public Consumer GetConsumer2(string CodeConsumer) { return(_consumersStorage.FirstOrDefault(Consumer => Logic2.GenerateCode(Consumer) == CodeConsumer)); }