Example #1
0
        public async Task GetList_UserIsNotAdminInList_ReturnsList()
        {
            var testListName = "TestList";
            var testListId   = "abc-de";

            var testList = new ShoppingList
            {
                Id   = testListId,
                Name = testListName
            };

            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.TestUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.GetAsync(testListId))
            .Returns(Task.FromResult(testList));
            listRepoMock.Setup(l => l.IsOfUserAsync(testList.Id, UserMocks.TestUser.Id))
            .Returns(Task.FromResult(true));

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);

            var response = await controller.GetList(testListId);

            var resultObject = response.Result as OkObjectResult;
            var list         = resultObject.Value as ShoppingListResult;

            Assert.Equal(testListName, list.ResultData[0].Name);
        }
Example #2
0
        public async Task GetLists_ResponseType_IsOkObjectResult()
        {
            var adminList = new ShoppingList();

            adminList.Owner = UserMocks.AdminUser;

            var userList = new ShoppingList();

            userList.Owner = UserMocks.TestUser;

            var shoppingLists = new List <ShoppingList>
            {
                adminList,
                userList
            };

            var shoppingListRepoMock = new Mock <IShoppingLists>();

            shoppingListRepoMock.Setup(l => l.GetAllAsync())
            .Returns(Task.FromResult(shoppingLists));

            var currentUserRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var controller = new ShoppingListsController(shoppingListRepoMock.Object, currentUserRepoMock, null);

            var response = await controller.GetLists();

            Assert.IsType <OkObjectResult>(response.Result);
        }
Example #3
0
        public void controlla_ShoppingLists_EditTest()
        {
            // Arrange
            ShoppingListsController controller = new ShoppingListsController();

            //Act
            //id dell'ShoppingListe che ha come descrizione "ShoppingListFotTestCreate"
            var idShoppingListBeforeEdit = from s in db.ShoppingList
                                           .Where(x => x.UnitMeasure.Equals("ShoppingListFotTestCreate"))
                                           select s.ID;

            //creo ShoppingLists modificato quantty da 1000 a 2000 per passare all'edit In POST
            ShoppingList ShoppingListFotTestEdit = new ShoppingList()
            {
                ID          = idShoppingListBeforeEdit.FirstOrDefault(),
                UnitMeasure = "ShoppingListFotTestCreate",
                Quantity    = 2000
            };


            //chiamo il controller per modificare
            ActionResult result = controller.Edit(ShoppingListFotTestEdit);

            //rileggo la quantità dopo edit
            var quantityAfterEdit = from s in db.ShoppingList
                                    .Where(x => x.UnitMeasure.Equals("ShoppingListFotTestCreate"))
                                    select s.Quantity;

            // Assert
            //mi che quantity=2000
            Assert.AreEqual(2000, quantityAfterEdit.FirstOrDefault());
        }
Example #4
0
        public async Task UpdateList_UpdateList_ReturnsOkObjectResultWithList()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var testList = new ShoppingList()
            {
                Id = "123"
            };

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.IsOfUserAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(true));
            listRepoMock.Setup(l => l.UpdateAsync(testList.Id, testList))
            .Returns(Task.FromResult(testList));

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);
            var response   = await controller.UpdateList(testList.Id, testList);

            Assert.IsType <OkObjectResult>(response.Result);

            var result = response.Result as OkObjectResult;
            var list   = result.Value as ShoppingListResult;

            Assert.Equal(testList.Id, list.ResultData[0].Id);
        }
Example #5
0
        public void controlla_ShoppingLists_CreateTest()
        {
            // Arrange
            ShoppingListsController controller = new ShoppingListsController();

            //Act
            //rilancio la creazione dell'ShoppingListe che ha come descrizione "ShoppingListFotTestCreate"

            ShoppingList ShoppingListFotTestCreate = new ShoppingList()
            {
                IdIngredients = 1,
                Quantity      = 1000,
                UnitMeasure   = "ShoppingListFotTestCreate"
            };

            ActionResult result = controller.Create(ShoppingListFotTestCreate);

            var idShoppingListFotTestCreate = from s in db.ShoppingList
                                              .Where(x => x.UnitMeasure.Equals("ShoppingListFotTestCreate"))
                                              select s.ID;

            // Assert
            //mi aspetto, che la selzione in base alla descrizione mi restituisca un ID
            Assert.IsNotNull(idShoppingListFotTestCreate.FirstOrDefault());
        }
Example #6
0
        public async Task AddItemToList_AddItemToList_ReturnsOkResultWithItem()
        {
            var testList = new ShoppingList
            {
                Id = "abc-def"
            };

            var item = new ShoppingListItem()
            {
                Id = "123-456"
            };

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.GetAsync(testList.Id))
            .Returns(Task.FromResult(testList));
            listRepoMock.Setup(l => l.AddOrUpdateItemAsync(testList.Id, item))
            .Returns(Task.FromResult(item));

            var controller = new ShoppingListsController(listRepoMock.Object, UserMocks.GetMockUserProvider(UserMocks.AdminUser), null);

            var response = await controller.AddItemToList(testList.Id, item);

            var result = response.Result as OkObjectResult;

            var itemResult = result.Value as ShoppingListItemResult;

            Assert.Equal(item.Id, itemResult.ResultData[0].Id);
        }
Example #7
0
        public async Task GetLists_UserIsAdmin_ReturnsAllLists()
        {
            var adminList = new ShoppingList();

            adminList.Owner = UserMocks.AdminUser;

            var userList = new ShoppingList();

            userList.Owner = UserMocks.TestUser;

            var shoppingLists = new List <ShoppingList>
            {
                adminList,
                userList
            };

            var shoppingListRepoMock = new Mock <IShoppingLists>();

            shoppingListRepoMock.Setup(l => l.GetAllAsync())
            .Returns(Task.FromResult(shoppingLists));

            var currentUserRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var controller = new ShoppingListsController(shoppingListRepoMock.Object, currentUserRepoMock, null);

            var response = await controller.GetLists();

            var result      = response.Result as OkObjectResult;
            var resultValue = result.Value as ShoppingListResult;

            Assert.Equal(2, resultValue.ResultData.Count);
        }
Example #8
0
        public async Task UpdateList_IdsDoNotMatch_ReturnsBadRequestResult()
        {
            var controller = new ShoppingListsController(null, null, null);
            var response   = await controller.UpdateList("123", new ShoppingList()
            {
                Id = "abc"
            });

            Assert.IsType <BadRequestObjectResult>(response.Result);
        }
Example #9
0
        public void coltrolla_ShoppingLists_IndexTest()
        {
            // Arrange
            ShoppingListsController controller = new ShoppingListsController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Example #10
0
        public async Task GetList_UserIsNotAdminAndNotUserOfList_ReturnsUnauthorizedResult()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.TestUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.GetAsync(It.IsAny <string>())).Returns(Task.FromResult(new ShoppingList()));

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);

            var response = await controller.GetList("");

            Assert.IsType <UnauthorizedObjectResult>(response.Result);
        }
Example #11
0
        public void controlla_ShoppingLists_DetailsTest()
        {
            // Arrange
            ShoppingListsController controller = new ShoppingListsController();

            //Act
            //imposta il recupero della ShoppingList id 9
            ActionResult result = controller.Details(9);

            // Assert
            //mi aspetto, ad esempio come ritorno dopo la chiamata per id 1 ShoppingListe che description=malts
            string unitMeasure = ((ShoppingList)((ViewResultBase)result).Model).UnitMeasure;

            Assert.AreEqual("grams", unitMeasure);
        }
Example #12
0
        public async Task GetList_SearchForNonExistingList_ReturnsNotFoundResult()
        {
            var testListId   = "abc-def";
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.GetAsync(testListId))
            .Throws(new ItemNotFoundException());

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);
            var response   = await controller.GetList(testListId);

            Assert.IsType <NotFoundObjectResult>(response.Result);
        }
Example #13
0
        public async Task AddItemToList_WhileAddingPersistencyError_ReturnsConflictResult()
        {
            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(new ShoppingList()));
            listRepoMock.Setup(l => l.AddOrUpdateItemAsync(It.IsAny <string>(), It.IsAny <ShoppingListItem>()))
            .Throws(new PersistencyException());

            var controller = new ShoppingListsController(listRepoMock.Object, UserMocks.GetMockUserProvider(UserMocks.AdminUser), null);

            var response = await controller.AddItemToList("", new ShoppingListItem());

            Assert.IsType <ConflictObjectResult>(response.Result);
        }
Example #14
0
        public async Task AddItemToList_ListDoesNotExist_ReturnsNotFoundResult()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.IsOfUserAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Throws(new ItemNotFoundException());

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);

            var response = await controller.AddItemToList("", new ShoppingListItem());

            Assert.IsType <NotFoundObjectResult>(response.Result);
        }
Example #15
0
        public async Task CreateList_ItemAlreadyExists_ReturnsConflictResult()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.CreateAsync(It.IsAny <ShoppingList>()))
            .Throws(new ItemAlreadyExistsException());

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);

            var response = await controller.CreateList(new ShoppingList());

            Assert.IsType <ConflictObjectResult>(response.Result);
        }
Example #16
0
        public async Task DeleteList_DeleteThrowsPersistencyException_ReturnsConflictResult()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.IsOfUserAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(true));
            listRepoMock.Setup(l => l.DeleteByIdAsync(It.IsAny <string>()))
            .Throws(new PersistencyException());

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);
            var response   = await controller.DeleteList("123");

            Assert.IsType <ConflictObjectResult>(response.Result);
        }
Example #17
0
        public async Task UpdateList_UpdateThrowsItemNotFoundException_ReturnsNotFoundResult()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.IsOfUserAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(true));
            listRepoMock.Setup(l => l.UpdateAsync(It.IsAny <string>(), It.IsAny <ShoppingList>()))
            .Throws(new ItemNotFoundException());

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);
            var response   = await controller.UpdateList("123", new ShoppingList()
            {
                Id = "123"
            });

            Assert.IsType <NotFoundObjectResult>(response.Result);
        }
Example #18
0
        public async Task GetLists_UserIsNotAdmin_ReturnsListsBelongingToUser()
        {
            string userListName = "UserList";

            var adminList = new ShoppingList();

            adminList.Owner = UserMocks.AdminUser;
            adminList.Name  = "AdminList";

            var userList = new ShoppingList();

            userList.Owner = UserMocks.TestUser;
            userList.Name  = userListName;

            var shoppingLists = new List <ShoppingList>
            {
                adminList,
                userList
            };

            var shoppingListRepoMock = new Mock <IShoppingLists>();

            shoppingListRepoMock.Setup(l => l.GetAllAsync())
            .Returns(Task.FromResult(shoppingLists));
            shoppingListRepoMock.Setup(l => l.GetAllOfUserAsync(UserMocks.TestUser.Id))
            .Returns(Task.FromResult(new List <ShoppingList>
            {
                userList
            }));

            var currentUserRepoMock = UserMocks.GetMockUserProvider(UserMocks.TestUser);

            var controller = new ShoppingListsController(shoppingListRepoMock.Object, currentUserRepoMock, null);

            var response = await controller.GetLists();

            var result      = response.Result as OkObjectResult;
            var resultValue = result.Value as ShoppingListResult;

            Assert.Single(resultValue.ResultData);
            Assert.Equal(userListName, resultValue.ResultData.First().Name);
        }
Example #19
0
        public async Task DeleteList_DeleteList_ReturnsOkResult()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var testList = new ShoppingList()
            {
                Id = "123"
            };

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.IsOfUserAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(Task.FromResult(true));
            listRepoMock.Setup(l => l.DeleteByIdAsync(testList.Id))
            .Returns(Task.FromResult(true));

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);
            var response   = await controller.DeleteList(testList.Id);

            Assert.IsType <OkObjectResult>(response.Result);
        }
Example #20
0
        public async Task GetList_UserIsAdminNotInList_ReturnsList()
        {
            var testListName = "TestList";
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(new ShoppingList()
            {
                Name = testListName
            }));

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);

            var response = await controller.GetList("");

            var resultObject = response.Result as OkObjectResult;
            var list         = resultObject.Value as ShoppingListResult;

            Assert.Equal(testListName, list.ResultData[0].Name);
        }
Example #21
0
        public void controlla_ShoppingLists_DeleteTest()
        {
            // Arrange
            ShoppingListsController controller = new ShoppingListsController();

            //Act
            //id dell'ShoppingListe che ha come descrizione "ShoppingListFotTestCreate"
            var idShoppingListBeforeDelete = from s in db.ShoppingList
                                             .Where(x => x.UnitMeasure.Equals("ShoppingListFotTestCreate"))
                                             select s.ID;

            //chiamo il controller per cancellare
            ActionResult result = controller.DeleteConfirmed(idShoppingListBeforeDelete.FirstOrDefault());

            //rileggo se esiste l'id dopo la cancellazione
            var idShoppingListAfterDelete = from s in db.ShoppingList
                                            .Where(x => x.UnitMeasure.Equals("ShoppingListFotTestCreate"))
                                            select s.ID;

            // Assert
            //mi aspetto che non ci sia l'id0
            Assert.AreEqual(0, idShoppingListAfterDelete.FirstOrDefault());
        }
Example #22
0
        public async Task CreateList_CreateNewList_OwnerIsCurrentUser()
        {
            var userRepoMock = UserMocks.GetMockUserProvider(UserMocks.AdminUser);

            var testList = new ShoppingList()
            {
                Name = "TestList"
            };

            var listRepoMock = new Mock <IShoppingLists>();

            listRepoMock.Setup(l => l.CreateAsync(testList))
            .Returns(Task.FromResult(testList));

            var controller = new ShoppingListsController(listRepoMock.Object, userRepoMock, null);

            var response = await controller.CreateList(testList);

            var result = response.Result as OkObjectResult;
            var list   = result.Value as ShoppingListResult;

            Assert.Equal(UserMocks.AdminUser.Id, list.ResultData[0].OwnerId);
        }
 public void SetUp()
 {
     _service      = new Mock <IShoppingListService>();
     _controller   = new ShoppingListsController(_service.Object);
     _shoppingList = new ShoppingList();
 }