public void LoginAsyncTest_EmptyParam()
        {
            // ARRANGE
            RepositoryAddItem <User, AddParamOfCRUDOperation <User> > repositoryAddItem = new RepositoryAddItem <User, AddParamOfCRUDOperation <User> >(_uow, context);
            AccountService accountService = new AccountService(_uow, repositoryAddItem);

            // ACT
            BaseResultType result = accountService.LoginAllowCheckAsync(new DefaultParamOfCRUDOperation <UserDTO>()).Result;

            //ASSERT
            Assert.IsTrue(result.Status == ResultStatus.Fail);
        }
        // [DataRow("123l.ru", "pass", ResultStatus.Fail)] //TODO: Добавить проверку корректности почты
        public void LoginAsyncTest_CheckUser(string email, string password, ResultStatus resultCheck)
        {
            // ARRANGE
            RepositoryAddItem <User, AddParamOfCRUDOperation <User> > repositoryAddItem = new RepositoryAddItem <User, AddParamOfCRUDOperation <User> >(_uow, context);

            AccountService accountService = new AccountService(_uow, repositoryAddItem);
            DefaultParamOfCRUDOperation <UserDTO> userParam = new DefaultParamOfCRUDOperation <UserDTO>();

            userParam.Item          = new UserDTO();
            userParam.Item.Email    = email;
            userParam.Item.Password = password;

            // ACT
            BaseResultType result = accountService.LoginAllowCheckAsync(userParam).Result;

            //ASSERT
            Assert.IsTrue(result.Status == resultCheck);
        }
        public void RegisterAsyncTest()
        {
            // ARRANGE
            RepositoryAddItem <User, AddParamOfCRUDOperation <User> > repositoryAddItem = new RepositoryAddItem <User, AddParamOfCRUDOperation <User> >(_uow, context);
            AccountService accountService = new AccountService(_uow, repositoryAddItem);
            AddParamOfCRUDOperation <UserDTO> userParam = new AddParamOfCRUDOperation <UserDTO>();

            userParam.Item          = new UserDTO();
            userParam.Item.Email    = "*****@*****.**";
            userParam.Item.Password = "******";
            int countUsersInDB = context.Users.CountAsync().Result;

            // ACT
            BaseResultType result = accountService.RegisterAsync(userParam).Result;

            //ASSERT
            Assert.IsTrue(result.Status == ResultStatus.Success);
            Assert.IsTrue(context.Users.CountAsync().Result == countUsersInDB + 1);
        }
        public void AddSubscribeTest()
        {
            //ARRANGE
            RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > repositoryAddItem = new RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(_uow, context);

            MemoryCacheRepository <ObjectMappingForTest> cacheTestClass = new MemoryCacheRepository <ObjectMappingForTest>();
            HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > processingObjectTestCalss = new HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(repositoryAddItem);
            FetchDomainData <ObjectMappingForTest> fetchDomainDataTestClass = new FetchDomainData <ObjectMappingForTest>(_uow);

            //ACT
            CacheCRUDBLLDecorator <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > processingObjectCacheDecorator = new AddCacheCRUDBLLDecorator <ObjectMappingForTest>(processingObjectTestCalss, cacheTestClass);
            var resultSave = processingObjectCacheDecorator.Execute(new AddParamOfCRUDOperation <ObjectMappingForTest>()
            {
                Item = new ObjectMappingForTest()
                {
                    IntValue = 22, IntValue2 = 33
                }
            }).Result;


            ObjectMappingForTest resultFromCache = cacheTestClass.GetByIdAsync(2).Result;
            ObjectMappingForTest resultFromDB    = fetchDomainDataTestClass.GetByIdAsync(2).Result;


            //ASSERT
            Assert.IsNotNull(resultFromCache);                                //В кеше есть данные

            Assert.AreEqual(resultFromDB.IntValue, resultFromCache.IntValue); //Проверка, что данные добавленные одинаковые
            Assert.AreEqual(resultFromDB.IntValue2, resultFromCache.IntValue2);

            //Удаляем для дальнейших тестов
            resultSave = processingObjectCacheDecorator.Execute(new AddParamOfCRUDOperation <ObjectMappingForTest>()
            {
                Item = new ObjectMappingForTest()
                {
                    Id = 2, IntValue = 22, IntValue2 = 33
                }
            }).Result;
            Assert.AreEqual(resultSave.Status, ResultStatus.Success);
        }
        public void CheckWorkWithCacheTest()
        {
            //ARRANGE
            RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > repositoryAddItem = new RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(_uow, context);

            MemoryCacheRepository <ObjectMappingForTest> cacheTestClass = new MemoryCacheRepository <ObjectMappingForTest>();
            HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > processingObjectTestCalss = new HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(repositoryAddItem);
            FetchDomainData <ObjectMappingForTest> fetchDomainDataTestClass = new FetchDomainData <ObjectMappingForTest>(_uow);


            //ACT
            CacheCRUDBLLDecorator <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > processingObjectCacheDecorator = new AddCacheCRUDBLLDecorator <ObjectMappingForTest>(processingObjectTestCalss, cacheTestClass);
            ObjectMappingForTest resultFromCache = cacheTestClass.GetByIdAsync(1).Result;
            ObjectMappingForTest resultFromDB    = fetchDomainDataTestClass.GetByIdAsync(1).Result;


            //ASSERT
            Assert.IsNull(resultFromCache); //В "БД" есть запись, но в кеше нет ее;

            Assert.IsNotNull(resultFromDB); //В "БД" есть запись
        }
        public void DeleteInCacheAndDataBaseTest()
        {
            //ARRANGE
            RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >       repositoryAddItem    = new RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(_uow, context);
            RepositoryDeleteItem <ObjectMappingForTest, DeleteParamOfCRUDOperation <ObjectMappingForTest> > repositoryDeleteItem = new RepositoryDeleteItem <ObjectMappingForTest, DeleteParamOfCRUDOperation <ObjectMappingForTest> >(_uow, context);

            MemoryCacheRepository <ObjectMappingForTest> cacheTestClass = new MemoryCacheRepository <ObjectMappingForTest>();
            HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >    processingObjectTestCalss       = new HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(repositoryAddItem);
            HandlerCRUD <ObjectMappingForTest, DeleteParamOfCRUDOperation <ObjectMappingForTest> > processingDeleteObjectTestClass = new HandlerCRUD <ObjectMappingForTest, DeleteParamOfCRUDOperation <ObjectMappingForTest> >(repositoryDeleteItem);
            FetchDomainData <ObjectMappingForTest> fetchDomainDataTestClass = new FetchDomainData <ObjectMappingForTest>(_uow);

            //ACT
            CacheCRUDBLLDecorator <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >    processingObjectCacheDecorator       = new AddCacheCRUDBLLDecorator <ObjectMappingForTest>(processingObjectTestCalss, cacheTestClass);
            CacheCRUDBLLDecorator <ObjectMappingForTest, DeleteParamOfCRUDOperation <ObjectMappingForTest> > processingDeleteObjectCacheDecorator = new DeleteCacheCRUDBLLDecorator <ObjectMappingForTest>(processingDeleteObjectTestClass, cacheTestClass);

            var resultSave = processingObjectCacheDecorator.Execute(new AddParamOfCRUDOperation <ObjectMappingForTest>()
            {
                Item = new ObjectMappingForTest()
                {
                    IntValue = 2222, IntValue2 = 3333
                }
            }).Result;


            ObjectMappingForTest resultFromCache = cacheTestClass.GetByIdAsync(2).Result;
            ObjectMappingForTest resultFromDB    = fetchDomainDataTestClass.GetByIdAsync(2).Result;

            //ASSERT
            Assert.IsNotNull(resultFromCache);                                //В кеше есть данные

            Assert.AreEqual(resultFromDB.IntValue, resultFromCache.IntValue); //Проверка, что данные добавленные одинаковые
            Assert.AreEqual(resultFromDB.IntValue2, resultFromCache.IntValue2);
            Assert.AreEqual(3333, resultFromDB.IntValue2);



            //ACT - Удаляем данные
            resultSave = processingDeleteObjectCacheDecorator.Execute(new DeleteParamOfCRUDOperation <ObjectMappingForTest>()
            {
                Item = new ObjectMappingForTest()
                {
                    Id = 2
                }
            }).Result;
            resultFromCache = cacheTestClass.GetByIdAsync(3).Result;
            var exArgumentException = Assert.ThrowsExceptionAsync <ArgumentException>(() => fetchDomainDataTestClass.GetByIdAsync(3));

            //ASSERT
            Assert.IsNull(resultFromCache);//В кеше есть данные
        }
示例#7
0
        public void AddLogTest(long?id)
        {
            RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > repositoryItem = new RepositoryAddItem <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(_uow, context);

            CreateContext();
            //ARRANGE
            LogTest logTestClass = new LogTest();

            Assert.AreEqual(0, logTestClass.LogItemsCollection.Count);//Пустые логи
            HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > processingObjectTestCalss = new HandlerCRUD <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(repositoryItem);
            ObjectMappingForTest item = new ObjectMappingForTest()
            {
                IntValue = 22, IntValue2 = 33
            };

            if (id != null)
            {
                item.Id = (long)id;
            }
            //ACT

            LogerCRUDBLLDecoratorDecorator <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> > processingObjectLogDecorator = new LogerCRUDBLLDecoratorDecorator <ObjectMappingForTest, AddParamOfCRUDOperation <ObjectMappingForTest> >(processingObjectTestCalss, logTestClass);
            BaseResultType <PrepareItemResult <ObjectMappingForTest> > resultSave = processingObjectLogDecorator.Execute(new AddParamOfCRUDOperation <ObjectMappingForTest>()
            {
                Item = item
            }).Result;

            //ASSERT
            Assert.AreEqual(ResultStatus.Success, resultSave.Status);
            Assert.AreEqual(1, logTestClass.GetCount());//Лог добавился
        }