コード例 #1
0
        public async Task AllAsyncShould_ReturnsCorrectModelWith_CorrectData()
        {
            var admin = UserCreator.Create();
            var user  = UserCreator.Create();

            await this.Db.AddRangeAsync(admin, user);

            var adminLog       = AdminLogCreator.Create(admin.Id, user.Id, ManagerRole);
            var secondAdminLog = AdminLogCreator.Create(admin.Id, user.Id, BloggerRole);

            await this.Db.AddRangeAsync(adminLog, secondAdminLog);

            await this.Db.SaveChangesAsync();

            var service = new AdminActivityService(this.Db);

            //TODO: rewrite the test - there is new parameter - page
            //Act
            (int count, var result) = await service.AllAsync <AdminActivitiesListingModel>(admin.Id, 1);

            var expectedCount = this.Db.AdminLogs.Count();

            var editedUsersUserNames = this.Db.AdminLogs
                                       .Where(al => al.AdminId == admin.Id)
                                       .OrderByDescending(al => al.CreatedOn)
                                       .Select(al => al.EditedUser.UserName).ToList();

            //Assert
            result.Should().BeOfType <List <AdminActivitiesListingModel> >();

            result.Should().HaveCount(expectedCount);

            result.Should().BeInDescendingOrder(a => a.CreatedOn);

            var logsModel = result.ToList();

            for (int i = 0; i < logsModel.Count; i++)
            {
                var log = logsModel[i];
                editedUsersUserNames[i].Should().Be(log.EditedUserUserName);
            }
        }