Example #1
0
        public async Task TestGetChoresForFlatAsync()
        {
            var chore = new Chore
            {
                Title        = "dishes",
                Description  = "do the dishes",
                AssignedUser = new User(),
                DueDate      = new DateTime(2020, 04, 04),
                Completed    = false,
                Recurring    = true,
            };


            await _choresRepository.Add(chore);

            // Act
            var response = await _choreController.GetAllChoresForFlat();

            // Assert
            Assert.IsInstanceOf <OkObjectResult>(response);
        }
        public async Task TestGetChoresForFlatAsync()
        {
            var chore = new Chore
            {
                Title        = "lawn",
                Description  = "mow the lawn",
                AssignedUser = await _userRepository.Get(1),
                DueDate      = new DateTime(2021, 05, 05),
                Completed    = false,
                Recurring    = true,
            };

            Chore result = await _choresRepository.Add(chore);

            // We need add the chore to the flat belonging to the active user
            int  userId     = 1; // as initialised in HttpContextHelper
            User activeUser = await _userRepository.Get(userId);

            Flat userFlat = activeUser.Flat;

            userFlat.Chores.Add(result);
            await _flatRepository.Update(userFlat);

            // Act
            var response = await _choreController.GetAllChoresForFlat();

            // Assert
            Assert.IsInstanceOf <OkObjectResult>(response);
            OkObjectResult actionResult = (OkObjectResult)response;

            Assert.IsInstanceOf <List <ChoreDTO> >(actionResult.Value);
            List <ChoreDTO> actualChores = (List <ChoreDTO>)actionResult.Value;

            List <ChoreDTO> expectedChores = new List <ChoreDTO> {
                new ChoreDTO
                {
                    Id          = 1,
                    Title       = "dishes",
                    Description = "do the dishes",
                    Assignee    = 1,
                    DueDate     = new DateTime(2020, 04, 04),
                    Completed   = false,
                    Recurring   = true
                }, new ChoreDTO
                {
                    Id          = 2,
                    Title       = "rubbish",
                    Description = "take out the rubbish",
                    Assignee    = 3,
                    DueDate     = new DateTime(2020, 05, 05),
                    Completed   = false,
                    Recurring   = true
                }, new ChoreDTO
                {
                    Id          = 3,
                    Title       = "lawn",
                    Description = "mow the lawn",
                    Assignee    = 1,
                    DueDate     = new DateTime(2021, 05, 05),
                    Completed   = false,
                    Recurring   = true,
                }
            };

            Assert.AreEqual(expectedChores, actualChores);
        }