public void IsCellAdded()
        {
            var options = new DbContextOptionsBuilder <AppDbContext>()
                          .UseInMemoryDatabase(databaseName: "database_to_add_cell")
                          .Options;

            var appDbContext = new AppDbContext(options);

            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "abcd"),
            }));

            appDbContext.UserPermissions.Add(new UserPermission
            {
                Id       = 1,
                UserName = "******",
                IdPrison = 1,
                Prison   = new Prison
                {
                    Id         = 1,
                    PrisonName = "prison_test"
                }
            });
            appDbContext.SaveChanges();
            var loggerRepository = new LoggerRepository(appDbContext);
            var loggerService    = new LoggerService(loggerRepository);

            var cellRepository = new CellRepository(appDbContext);
            var cellService    = new CellService(cellRepository);

            var cellController = new PCellsController(
                cellService,
                _mapper,
                loggerService)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = new DefaultHttpContext {
                        User = user
                    }
                }
            };


            var cell1 = new CellDTO
            {
                Beds       = 1,
                IdCellType = 1,
            };

            Assert.IsFalse(appDbContext.Cells.Any(), "Cell was added before it should be");
            cellController.AddCell(cell1);
            Assert.AreEqual(1, appDbContext.Cells.Count(), "amount of cells is wrong");
        }
        public void AddCellUnitTests()
        {
            // Arrange
            var options = new DbContextOptionsBuilder <AppDbContext>()
                          .UseInMemoryDatabase(databaseName: "database_to_add_cellUT")
                          .Options;

            var appDbContext  = new AppDbContext(options);
            var mappingConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new ModelToResourceProfile());
            });
            IMapper mapper = mappingConfig.CreateMapper();
            var     user   = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "abcd"),
            }));

            appDbContext.UserPermissions.Add(new UserPermission
            {
                Id       = 1,
                UserName = "******",
                IdPrison = 1,
                Prison   = new Prison
                {
                    Id         = 1,
                    PrisonName = "prison_test"
                }
            });
            appDbContext.SaveChanges();
            var loggerRepository = new LoggerRepository(appDbContext);
            var loggerService    = new LoggerService(loggerRepository);

            var cellRepository = new CellRepository(appDbContext);
            var cellService    = new CellService(cellRepository);

            var pCellsController = new PCellsController(
                cellService,
                mapper,
                loggerService)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = new DefaultHttpContext {
                        User = user
                    }
                }
            };

            // Act
            var result = pCellsController.AddCell(new CellDTO());

            // Assert
            Assert.IsInstanceOf <ActionResult <CellVM> >(result);
        }
        public void IsUpdatingSelectedCell()
        {
            var options = new DbContextOptionsBuilder <AppDbContext>()
                          .UseInMemoryDatabase(databaseName: "Add_writes_to_Update_Cell_database")
                          .Options;
            var appDbContext = new AppDbContext(options);
            var user         = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.Name, "abcd"),
            }));

            appDbContext.UserPermissions.Add(new UserPermission
            {
                Id       = 1,
                UserName = "******",
                IdPrison = 1,
                Prison   = new Prison
                {
                    Id         = 1,
                    PrisonName = "prison_test"
                }
            });
            appDbContext.SaveChanges();
            var loggerRepository = new LoggerRepository(appDbContext);
            var loggerService    = new LoggerService(loggerRepository);

            var cellRepository = new CellRepository(appDbContext);
            var cellService    = new CellService(cellRepository);

            var cellController = new PCellsController(
                cellService,
                _mapper,
                loggerService)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = new DefaultHttpContext {
                        User = user
                    }
                }
            };

            appDbContext.CellTypes.Add(new CellType
            {
                Id       = 1,
                CellName = "abcd"
            });
            cellController.AddCell(new CellDTO
            {
                Beds       = 1,
                IdCellType = 1,
            });

            var cellToUpdate = new CellDTO
            {
                Beds       = 5,
                IdCellType = 1
            };


            Assert.AreEqual(appDbContext.Cells.Count(), 1);
            cellController.UpdateCell(1, cellToUpdate);
            Assert.AreEqual(appDbContext.Cells.Count(), 1, "Cell has not deleted or added, instead of updating");
            Assert.AreEqual(appDbContext.Cells.FirstOrDefault(x => x.Id == 1).Beds, 5, "The cell updated wrong value");
        }