Example #1
0
        public void Domain_WithTestDB_CallsCRUD()
        {
            // для тестирования указываем название тестовой бд, которая будет пересоздаваться
            var storage    = new CallCenterStorage("TestsDB");
            var callCenter = new CallCenterService(storage);

            var person = TestData.GetTestPersons()[0];
            var call   = TestData.GetTestCalls()[0];

            callCenter.AddPersonAsync(person).Wait();

            var pListItem = callCenter.GetPersonsAsync(new PersonsFilters()
            {
                NameFilter = person.FirstName
            }).Result[0];

            Assert.IsNotNull(pListItem);
            var pCalls = callCenter.GetCalls(pListItem.Id);

            Assert.AreEqual(0, pCalls.Count);
            // Добавление отчета
            callCenter.AddCallAsync(call, pListItem.Id).Wait();
            pCalls = callCenter.GetCalls(pListItem.Id);
            Assert.AreEqual(1, pCalls.Count, "Отчет не добавлен");
            Assert.AreEqual(call.CallDate, pCalls[0].CallDate, "Данные не сохранились (CallDate)");
            Assert.AreEqual(call.CallReport, pCalls[0].CallReport, "Данные не сохранились (CallReport)");
            Assert.AreEqual(call.OrderCost, pCalls[0].OrderCost, "Данные не сохранились (OrderCost)");
            // Обновление отчета
            call = pCalls[0];
            var newCall = new CallDetails()
            {
                Id = call.Id, CallDate = DateTime.Now.AddDays(-1), CallReport = "call report", OrderCost = 999.99
            };

            callCenter.UpdateCallAsync(newCall).Wait();
            pCalls = callCenter.GetCalls(pListItem.Id);
            Assert.AreEqual(1, pCalls.Count, "Неправильное количество отчетов");
            Assert.AreEqual(newCall.CallDate, pCalls[0].CallDate, "Данные не сохранились (CallDate)");
            Assert.AreEqual(newCall.CallReport, pCalls[0].CallReport, "Данные не сохранились (CallReport)");
            Assert.AreEqual(newCall.OrderCost, pCalls[0].OrderCost, "Данные не сохранились (OrderCost)");
            // удаление отчета
            callCenter.DeleteCallAsync(pCalls[0].Id).Wait();
            pCalls = callCenter.GetCalls(person.Id);
            Assert.AreEqual(0, pCalls.Count, "Отчет не удален");
            //
            newCall = new CallDetails()
            {
                CallDate = DateTime.Now.AddDays(-1), CallReport = "call report", OrderCost = 999.99
            };
            callCenter.AddCallAsync(newCall, pListItem.Id).Wait();
            pCalls = callCenter.GetCalls(pListItem.Id);
            callCenter.DeleteCallAsync(pCalls[0].Id).Wait();
            pCalls = callCenter.GetCalls(pListItem.Id);
            Assert.AreEqual(0, pCalls.Count, "Отчет не удален");
        }
Example #2
0
        public void Domain_WithTestDB_PersonsCRUD()
        {
            // для тестирования указываем название тестовой бд, которая будет пересоздаваться
            var storage    = new CallCenterStorage("TestsDB");
            var callCenter = new CallCenterService(storage);
            var pList      = TestData.GetTestPersons(false);
            // запись и чтение
            int recCount = callCenter.PersonsCountAsync().Result;

            callCenter.AddPersonAsync(pList[0]).Wait();
            Assert.AreEqual(recCount + 1, callCenter.PersonsCountAsync().Result, "Запись не добавлена");
            var fltr = new PersonsFilters()
            {
                NameFilter = pList[0].LastName
            };
            var pers = callCenter.GetPersonsAsync(fltr).Result;

            Assert.AreEqual(pers.Count, 1, "Данные не получены");
            // чтение по id
            Guid pId = pers[0].Id;
            var  p   = callCenter.GetPerson(pId);

            Assert.IsNotNull(p, "Данные Person по id не получены");
            // добавление отчета
            var c = new CallDetails()
            {
                CallDate = DateTime.Now, CallReport = "Empty", OrderCost = 0
            };

            callCenter.AddCallAsync(c, pId).Wait();
            var calls = callCenter.GetCalls(pId);

            Assert.AreEqual(1, calls.Count, "Отчет не добавлен");
            // обновление
            p.FirstName  = "NewFirstName";
            p.LastName   = "NewLastName";
            p.Patronymic = "NewPatronymic";
            DateTime newBirthDate = DateTime.Now.AddYears(-20);

            p.BirthDate   = newBirthDate;
            p.Gender      = Gender.All;
            p.PhoneNumber = "00000000";
            callCenter.UpdatePersonAsync(p).Wait();
            p = callCenter.GetPerson(pId);
            Assert.AreEqual(p.FirstName, "NewFirstName", "Данные не обновились (FirstName)");
            Assert.AreEqual(p.LastName, "NewLastName", "Данные не обновились (LastName)");
            Assert.AreEqual(p.Patronymic, "NewPatronymic", "Данные не обновились (Patronymic)");
            Assert.AreEqual(p.BirthDate, newBirthDate, "Данные не обновились (BirthDate)");
            Assert.AreEqual(p.Gender, Gender.All, "Данные не обновились (Gender)");
            Assert.AreEqual(p.PhoneNumber, "00000000", "Данные не обновились (PhoneNumber)");
            // удаление
            callCenter.DeletePersonAsync(p.Id).Wait();
            p = callCenter.GetPerson(p.Id);
            Assert.IsNull(p, "Запись не удалилась");
            //
            callCenter.AddPersonAsync(pList[1]).Wait();
            var pd = callCenter.GetPersonsAsync(new PersonsFilters()).Result[0];

            Assert.IsNotNull(pd);
            pId = pd.Id;
            callCenter.DeletePersonAsync(pId).Wait();
            p = callCenter.GetPerson(pId);
            Assert.IsNull(p);
        }