Exemplo n.º 1
0
        public void RegisterUserShouldFailWithSameUsername()
        {
            //arrange
            var toRegister = new RegisterInputModel
            {
                Password        = "******",
                ConfirmPassword = "******",
                Email           = "*****@*****.**",
                Username        = "******"
            };

            var user = new GetShreddedUser
            {
                Email    = "*****@*****.**",
                UserName = "******"
            };

            this.userManager.CreateAsync(user).GetAwaiter();
            this.Context.SaveChanges();
            //act
            this.roleService.CreateAsync(new IdentityRole {
                Name = GlobalConstants.DefaultRole
            }).GetAwaiter();
            var result = this.userService.RegisterUser(toRegister).GetAwaiter().GetResult();

            //assert

            result.Should().BeEquivalentTo(SignInResult.Failed);
        }
Exemplo n.º 2
0
        public void LogUser_Should_Return_Sucess()
        {
            //arrange
            var user = new GetShreddedUser
            {
                UserName = "******",
            };
            string userPassword = "******";

            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.userManager.AddPasswordAsync(user, userPassword).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act

            var loginUser = new LoginInputModel
            {
                Password = userPassword,
                Username = user.UserName
            };

            var result = this.userService.LogUser(loginUser);

            //assert
            result.Should().BeEquivalentTo(SignInResult.Success);
        }
        public void DeleteUserShouldDeleteUserByGivenId()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id        = "UserIdTests",
                UserName  = "******",
                FirstName = "UserFirstNameTests",
                LastName  = "UserLastNameTests",
            };

            var secondUser = new GetShreddedUser
            {
                Id        = "SecondUserIdTests",
                UserName  = "******",
                FirstName = "SecondUserFirstNameTests",
                LastName  = "SecondUserLastNameTests",
            };

            this.userManager.CreateAsync(user).GetAwaiter();
            this.userManager.CreateAsync(secondUser).GetAwaiter();
            this.Context.SaveChanges();

            //act
            string userToDeleteId = user.Id;

            this.adminService.DeleteUser(userToDeleteId);

            //assert
            var users = this.Context.Users.ToList();

            users.Should().ContainSingle().And.Subject.Should().NotContain(user);
        }
        public void AddPageShouldAddNewPageToDiary()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = user,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var page = new Page
            {
                Id                 = 2,
                Content            = "Content",
                UserId             = user.Id,
                GetShreddedUser    = user,
                GetShreddedDiary   = diary,
                GetShreddedDiaryId = diary.Id,
                Title              = "Title",
                CreatedOn          = DateTime.UtcNow
            };

            var newPage = new PageInputModel
            {
                User      = user.UserName,
                Content   = "Some New Content",
                CreatedOn = DateTime.Now,
                DiaryId   = diary.Id,
                Title     = "New Page"
            };

            userManager.CreateAsync(user).GetAwaiter();
            this.Context.Pages.Add(page);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            this.pageService.AddPage(newPage);

            //assert

            var result = this.Context.Pages.OrderBy(x => x.CreatedOn).Last(x => x.GetShreddedDiaryId == diary.Id);

            result.Should().NotBeNull()
            .And.Subject.As <Page>()
            .Title.Should().BeSameAs(newPage.Title);
        }
Exemplo n.º 5
0
        public void DeleteCommentShouldDeleteComment()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var type = new DiaryType
            {
                Id   = 1,
                Name = "Cutting"
            };

            var diary = new GetShreddedDiary
            {
                Title     = "One",
                Id        = 1,
                CreatedOn = DateTime.Now,
                Summary   = null,
                Type      = type,
                UserId    = "UserId"
            };

            var comment = new Comment
            {
                GetShreddedDiaryId = 1,
                GetShreddedUser    = user,
                GetShreddedDiary   = diary,
                CommentedOn        = DateTime.Now.Date,
                Message            = "Comment",
                GetShreddedUserId  = user.Id,
                Id = 1
            };

            var userManager =
                (UserManager <GetShreddedUser>) this.Provider.GetService(typeof(UserManager <GetShreddedUser>));

            userManager.CreateAsync(user).GetAwaiter();
            this.Context.Comments.Add(comment);
            this.Context.DiaryTypes.Add(type);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act

            this.CommentService.DeleteComment(1);
            var result = this.Context.Comments.ToList();

            //assert

            result.Should().BeEmpty();
        }
        public void EditPageShouldEditPageContentOrTitle()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = user,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var page = new Page
            {
                Id                 = 1,
                Content            = "Content",
                UserId             = user.Id,
                GetShreddedUser    = user,
                GetShreddedDiary   = diary,
                GetShreddedDiaryId = diary.Id,
                Title              = "Title",
                CreatedOn          = DateTime.UtcNow
            };

            var record = new PageEditModel
            {
                User      = user.UserName,
                Content   = "Some New Content",
                CreatedOn = page.CreatedOn,
                Id        = page.Id,
                DiaryId   = diary.Id,
                Title     = "New Title"
            };

            userManager.CreateAsync(user).GetAwaiter();
            this.Context.Pages.Add(page);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            this.pageService.EditPage(record);

            //assert
            var result = this.Context.Pages.ProjectTo <PageEditModel>().FirstOrDefault(x => x.Id == page.Id);

            result.Should().NotBeNull().And.Subject.Should().BeEquivalentTo(record);
        }
        public void GetPageToEditByIdShouldReturnThePageEditModelById()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = user,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var page = new Page
            {
                Id                 = 1,
                Content            = "SomeContent",
                UserId             = user.Id,
                GetShreddedUser    = user,
                GetShreddedDiary   = diary,
                GetShreddedDiaryId = diary.Id,
                Title              = "Title",
                CreatedOn          = DateTime.UtcNow
            };

            var record = new PageEditModel
            {
                User      = user.UserName,
                Content   = page.Content,
                CreatedOn = page.CreatedOn,
                Id        = page.Id,
                DiaryId   = diary.Id,
                Title     = page.Title
            };

            userManager.CreateAsync(user).GetAwaiter();
            this.Context.Pages.Add(page);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            int pageId = page.Id;
            var result = this.pageService.GetPageToEditById(pageId);

            //assert
            result.Should().NotBeNull().And.Subject.Should().BeEquivalentTo(record);
        }
        public void AddRatingShouldThrowExceptionIfAlreadyRatedIsTrue()
        {
            //arrange
            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = null,
                Summary = "Summary",
                Title   = "Title"
            };

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var rating = new DiaryRating
            {
                Rating            = 8,
                GetShreddedUserId = user.Id,
                Id = 1,
                GetShreddedUser = user
            };

            var diaryRating = new GetShreddedRating
            {
                GetShreddedDiaryId = diary.Id,
                DiaryRatingId      = rating.Id,
                GetShreddedDiary   = diary,
                DiaryRating        = rating
            };

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();

            usermanager.CreateAsync(user).GetAwaiter();

            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.DiaryRatings.Add(rating);
            this.Context.GetShreddedRatings.Add(diaryRating);
            this.Context.SaveChanges();

            //act

            var diaryService = GetService();

            Action act = () => diaryService.AddRating(diary.Id, 1, user.UserName);

            //assert
            act.Should().Throw <InvalidOperationException>().WithMessage(GlobalConstants.AlreadyRated);
        }
        public void DeleteDiaryShouldBeSuccessfulForAdmin()
        {
            //arrange
            var firstUser = new GetShreddedUser
            {
                Id       = "FirstId",
                UserName = "******",
            };
            var secondUser = new GetShreddedUser
            {
                Id       = "SecondId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = null,
                Summary = "Summary",
                Title   = "Title",
                UserId  = secondUser.Id,
            };

            var role = new IdentityRole {
                Name = "admin"
            };

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();
            var roleManager = this.Provider.GetRequiredService <RoleManager <IdentityRole> >();

            usermanager.CreateAsync(secondUser).GetAwaiter();
            usermanager.CreateAsync(firstUser).GetAwaiter();
            roleManager.CreateAsync(role).GetAwaiter();

            usermanager.AddToRoleAsync(firstUser, "admin").GetAwaiter();

            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            var diaryService = GetService();

            diaryService.DeleteDiary(diary.Id, firstUser.UserName).GetAwaiter();

            //assert

            var result = this.Context.GetShreddedDiaries.FirstOrDefault();

            result.Should().BeNull();
        }
Exemplo n.º 10
0
        public void AllMessageSeenShouldChangeForAllMessagesIsReadenToTrue()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var messages = new[]
            {
                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 1,
                    Text       = "It works?",
                },

                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 2,
                    Text       = "It works two?",
                }
            };

            this.Context.Messages.AddRange(messages);
            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act
            string username = user.UserName;

            this.messageService.AllMessagesSeen(username);

            //assert

            var messagesFromDatabase = this.Context.Messages.Where(x => x.ReceiverId == user.Id).ToArray();

            messagesFromDatabase
            .Select(x => x.IsReaded.Should()
                    .NotBeFalse())
            .Should().HaveCount(2);
        }
Exemplo n.º 11
0
        public void DeleteMessageShouldDeleteOnlyTheMessageWithGivenId()
        {
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var messages = new[]
            {
                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 1,
                    Text       = "It works?",
                },

                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 2,
                    Text       = "It works?two",
                }
            };

            this.Context.Messages.AddRange(messages);
            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act
            int messageId = messages[0].Id;

            this.messageService.DeleteMessage(messageId);

            //assert
            var messagesFromDatabase    = this.Context.Messages.Where(x => x.ReceiverId == user.Id).ToArray();
            int singleMessageIdShouldBe = 2;

            messagesFromDatabase.Should()
            .ContainSingle()
            .And.Subject.Should()
            .Contain(x => x.Id == singleMessageIdShouldBe);
        }
        public void ChangeRoleShouldFailWithNonExistantRole()
        {
            //arrange
            var roles = new[]
            {
                "admin",
                "user"
            };

            foreach (var currentRolename in roles)
            {
                var role = new IdentityRole
                {
                    Name = currentRolename
                };

                this.roleManager.CreateAsync(role).GetAwaiter();
            }

            var user = new GetShreddedUser
            {
                Id        = "UserIdTests",
                UserName  = "******",
                FirstName = "UserFirstNameTests",
                LastName  = "UserLastNameTests",
            };

            this.userManager.CreateAsync(user).GetAwaiter();
            this.Context.SaveChanges();

            //act
            string newRole = "RoleTests";

            var model = new ChangeRoleModel
            {
                Id = user.Id,
                ApplicationRoles = roles,
                UpdatedRole      = newRole,
                Username         = user.UserName,
                Role             = GlobalConstants.DefaultRole
            };

            var methodResult = this.adminService.ChangeRole(model);

            //assert
            methodResult.Should().Equals(IdentityResult.Failed());
        }
        public async Task FollowShouldCreateUserDiaryEntityInDatabase()
        {
            //arrange

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = null,
                Summary = "Summary",
                Title   = "Title"
            };

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            this.Context.GetShreddedDiaries.Add(diary);

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();
            await usermanager.CreateAsync(user);

            this.Context.SaveChanges();

            //act
            var diaryService = GetService();

            var diaryId  = diary.Id;
            var username = user.UserName;
            var userId   = user.Id;
            await diaryService.Follow(username, userId, diaryId);

            //assert

            var result = this.Context.GetShreddedUserDiaries.FirstOrDefault();

            var userDiary = new GetShreddedUserDiary
            {
                GetShreddedUserId  = user.Id,
                GetShreddedDiaryId = diary.Id
            };

            result.Should().BeOfType <GetShreddedUserDiary>().And.Subject.Should().Equals(userDiary);
        }
        public void DeleteAllNotificationsShouldRemoveAllNotificationsForUserByUsername()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "OneId",
                UserName = "******"
            };

            var notifications = new[]
            {
                new Notification
                {
                    GetShreddedUser   = user,
                    GetShreddedUserId = user.Id,
                    Seen           = false,
                    Message        = GlobalConstants.NotificationMessage,
                    UpdatedDiaryId = 1
                },

                new Notification
                {
                    GetShreddedUser   = user,
                    GetShreddedUserId = user.Id,
                    Seen           = false,
                    Message        = GlobalConstants.NotificationMessage,
                    UpdatedDiaryId = 2
                }
            };

            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.Notifications.AddRange(notifications);
            this.Context.SaveChanges();

            //act
            string username = user.UserName;

            this.notificationService.DeleteAllNotifications(username);

            //assert
            var userNotifications = this.Context.Notifications.Count();
            int expectedCount     = 0;

            userNotifications.Should().Be(expectedCount);
        }
        public async Task AddRatingShouldAddRatingToADiary()
        {
            //arrange

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = null,
                Summary = "Summary",
                Title   = "Title"
            };

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();
            await usermanager.CreateAsync(user);

            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();
            //act

            var diaryService = GetService();

            diaryService.AddRating(diary.Id, 10, user.UserName);

            //assert

            var diaryRating = new GetShreddedRating
            {
                GetShreddedDiaryId = 1,
                DiaryRatingId      = 1
            };

            var result = this.Context.GetShreddedRatings.FirstOrDefault();

            result.Should().NotBeNull().And.
            Subject.Should()
            .BeOfType <GetShreddedRating>().And.Should()
            .BeEquivalentTo(diaryRating, opt => opt.ExcludingMissingMembers());
        }
Exemplo n.º 16
0
        public void DeleteAllMessagesShouldDeleteAllMessagesForUser()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var messages = new[]
            {
                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 1,
                    Text       = "It works?",
                },

                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 2,
                    Text       = "It works two?",
                }
            };

            this.Context.Messages.AddRange(messages);
            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act
            string userId = user.Id;

            this.messageService.DeleteAllMessages(userId);

            //assert
            var messagesFromDb = this.Context.Messages.Where(x => x.ReceiverId == user.Id).ToArray();

            messagesFromDb.Should().BeEmpty();
        }
Exemplo n.º 17
0
        public void NewMessagesShouldReturnTheCountOfMessagesWhereIsReadenIsFalse()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var messages = new[]
            {
                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 1,
                    Text       = "It works?",
                },

                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 2,
                    Text       = "It works?two",
                }
            };

            this.Context.Messages.AddRange(messages);
            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act
            string userId        = user.Id;
            int    count         = this.messageService.NewMessages(userId);
            int    expectedCount = messages.Count();

            //assert
            count.Should().BePositive().And.Subject.Should().Be(expectedCount);
        }
        public void NewNotifications_Should_Return_User_By_Username_Notifications_Where_Seen_IsFalse()
        {
            var user = new GetShreddedUser
            {
                Id       = "OneId",
                UserName = "******"
            };

            var notifications = new[]
            {
                new Notification
                {
                    GetShreddedUser   = user,
                    GetShreddedUserId = user.Id,
                    Seen           = false,
                    Message        = GlobalConstants.NotificationMessage,
                    UpdatedDiaryId = 1
                },

                new Notification
                {
                    GetShreddedUser   = user,
                    GetShreddedUserId = user.Id,
                    Seen           = false,
                    Message        = GlobalConstants.NotificationMessage,
                    UpdatedDiaryId = 2
                }
            };

            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.Notifications.AddRange(notifications);
            this.Context.SaveChanges();

            //act
            string username = user.UserName;
            var    count    = this.notificationService.NewNotifications(username);

            //assert
            int countExpected = notifications.Count();

            count.Should().Be(countExpected);
        }
Exemplo n.º 19
0
        public void AddCommentShouldAddComment()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var userManager =
                (UserManager <GetShreddedUser>) this.Provider.GetService(typeof(UserManager <GetShreddedUser>));

            userManager.CreateAsync(user).GetAwaiter();
            this.Context.SaveChanges();

            var comment = new CommentInputModel
            {
                DiaryId     = 1,
                CommentUser = "******",
                CommentedOn = DateTime.Now.Date,
                Message     = "Comment",
            };

            var commentOut = new CommentOutputModel
            {
                Id          = 1,
                User        = "******",
                CommentedOn = DateTime.Now.Date,
                Message     = "Comment",
                DiaryId     = comment.DiaryId
            };

            //act
            this.CommentService.AddComment(comment);

            //assert
            var result = this.Context.Comments.First();

            var mappedResult = Mapper.Map <CommentOutputModel>(result);

            mappedResult.Should().BeEquivalentTo(commentOut);
        }
        public async Task FollowShouldThrowOperationExceptionWhenTryToAddDuplicateEntity()
        {
            //arrange

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = null,
                Summary = "Summary",
                Title   = "Title"
            };

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            this.Context.GetShreddedDiaries.Add(diary);

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();
            await usermanager.CreateAsync(user);

            this.Context.SaveChanges();

            //act
            var storyService = GetService();

            var diaryId  = diary.Id;
            var username = user.UserName;
            var userId   = user.Id;
            await storyService.Follow(username, userId, diaryId);

            //assert

            Action act = () => storyService.Follow(username, userId, diaryId).GetAwaiter().GetResult();

            string message = string.Join(GlobalConstants.AlreadyFollow, user.UserName);

            act.Should().Throw <InvalidOperationException>().WithMessage(message);
        }
        public void DeleteUserShouldThrowArgumentException()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id        = "userId",
                UserName  = "******",
                FirstName = "UserFirstNameTests",
                LastName  = "UserLastNameTests",
            };

            this.userManager.CreateAsync(user).GetAwaiter();
            this.Context.SaveChanges();

            //act
            string      userToDeleteId = "RandomIdTests";
            Func <Task> act            = async() => await this.adminService.DeleteUser(userToDeleteId);

            //assert
            act.Should().Throw <ArgumentException>().WithMessage(GlobalConstants.ErrorOnDeleteUser);
        }
        public void DeleteDiaryShouldThrowExceptionWithAdminAndUserBoolsFalse()
        {
            //arrange
            var firstUser = new GetShreddedUser
            {
                Id       = "FirstId",
                UserName = "******",
            };
            var secondUser = new GetShreddedUser
            {
                Id       = "SecondId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = null,
                Summary = "Summary",
                Title   = "Title",
                UserId  = secondUser.Id,
            };

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();

            usermanager.CreateAsync(firstUser).GetAwaiter();
            usermanager.CreateAsync(secondUser).GetAwaiter();

            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            var         diaryService = GetService();
            Func <Task> act          = async() => await diaryService.DeleteDiary(diary.Id, firstUser.UserName);

            //assert

            act.Should().Throw <OperationCanceledException>();
        }
Exemplo n.º 23
0
        private async Task SeedRoles(
            UserManager <GetShreddedUser> userManager,
            RoleManager <IdentityRole> roleManager)
        {
            await roleManager.CreateAsync(new IdentityRole
            {
                Name = GlobalConstants.Admin
            });

            var user = new GetShreddedUser
            {
                UserName  = "******",
                Email     = "*****@*****.**",
                FirstName = "FirstAdmin",
                LastName  = "LastAdmin"
            };

            string password = "******";

            await userManager.CreateAsync(user, password);

            await userManager.AddToRoleAsync(user, GlobalConstants.Admin);
        }
Exemplo n.º 24
0
        public void SenMessageShouldCreateNewMessage()
        {
            //arrange
            var sender = new GetShreddedUser
            {
                Id       = "SenderId",
                UserName = "******"
            };

            var receiver = new GetShreddedUser
            {
                Id       = "ReceiverId",
                UserName = "******"
            };

            var message = new MessageInputModel
            {
                SenderName   = sender.UserName,
                ReceiverName = receiver.UserName,
                SendDate     = DateTime.UtcNow,
                Message      = "It works!!",
            };

            this.userManager.CreateAsync(receiver).GetAwaiter().GetResult();
            this.userManager.CreateAsync(sender).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act
            this.messageService.SendMessage(message);

            //assert
            var result = this.Context.Messages.FirstOrDefault();

            result.Should().NotBeNull();
            result?.SenderId.Should().Be(sender.Id);
            result?.ReceiverId.Should().Be(receiver.Id);
        }
        public void DeleteDiaryShouldThrowExceptionForNullNotExistingDiaryOnDelete()
        {
            //arrange
            var firstUser = new GetShreddedUser
            {
                Id       = "FirstId",
                UserName = "******",
            };
            var secondUser = new GetShreddedUser
            {
                Id       = "SecondId",
                UserName = "******",
            };

            var role = new IdentityRole {
                Name = "admin"
            };

            var usermanager = this.Provider.GetRequiredService <UserManager <GetShreddedUser> >();
            var roleManager = this.Provider.GetRequiredService <RoleManager <IdentityRole> >();

            usermanager.CreateAsync(secondUser).GetAwaiter();
            usermanager.CreateAsync(firstUser).GetAwaiter();
            roleManager.CreateAsync(role).GetAwaiter();

            usermanager.AddToRoleAsync(firstUser, "admin").GetAwaiter();
            this.Context.SaveChanges();

            //act
            var         diaryService = GetService();
            Func <Task> act          = async() => await diaryService.DeleteDiary(1, firstUser.UserName);

            //assert

            act.Should().ThrowAsync <InvalidOperationException>().Wait();
        }
Exemplo n.º 26
0
        public void MessageSeenShouldChangeMessageIsReadenPropertyToTrue()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var message = new Message
            {
                IsReaded   = false,
                ReceiverId = user.Id,
                Receiver   = user,
                Id         = 1,
                Text       = "It works?",
            };

            this.Context.Messages.Add(message);
            this.userManager.CreateAsync(user).GetAwaiter().GetResult();
            this.Context.SaveChanges();

            //act
            int messageId = message.Id;

            this.messageService.MessageSeen(messageId);

            //assert
            var result = this.Context.Messages.Find(messageId);

            result.Should()
            .NotBeNull()
            .And.Subject.As <Message>()
            .IsReaded
            .Should().BeTrue();
        }
        public void DeletePageUserShouldDeletePage()
        {
            //arrange

            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = user,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var pages = new[]
            {
                new Page
                {
                    Id = 1,
                    GetShreddedUser    = user,
                    GetShreddedDiary   = diary,
                    UserId             = user.Id,
                    GetShreddedDiaryId = diary.Id,
                    Content            = "Content",
                    Title     = "Title",
                    CreatedOn = DateTime.UtcNow
                },

                new Page
                {
                    Id = 2,
                    GetShreddedUser    = user,
                    GetShreddedDiary   = diary,
                    UserId             = user.Id,
                    GetShreddedDiaryId = diary.Id,
                    Content            = "Some New Content",
                    Title     = "New Page",
                    CreatedOn = DateTime.Now,
                }
            };

            var role = new IdentityRole
            {
                Name = GlobalConstants.Admin
            };

            roleManager.CreateAsync(role).GetAwaiter();
            userManager.CreateAsync(user).GetAwaiter();

            this.Context.Pages.AddRange(pages);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            int    diaryId  = diary.Id;
            int    pageId   = pages[0].Id;
            string username = user.UserName;

            this.pageService.DeletePage(diaryId, pageId, username);

            //assert
            var result   = this.Context.Pages.First();
            var pageLeft = pages[1];

            result.Should().NotBeNull()
            .And.Subject.As <Page>().Title.Should().BeEquivalentTo(pageLeft.Title);
        }
        public void DeletePageShouldThrowInvalidOperationException()
        {
            //arrange
            var firstUser = new GetShreddedUser
            {
                Id       = "FirstUserId",
                UserName = "******",
            };

            var secondUser = new GetShreddedUser
            {
                Id       = "SecondUserId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = secondUser,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var pages = new[]
            {
                new Page
                {
                    Id = 1,
                    GetShreddedUser    = secondUser,
                    GetShreddedDiary   = diary,
                    UserId             = secondUser.Id,
                    GetShreddedDiaryId = diary.Id,
                    Content            = "Content",
                    Title     = "Title",
                    CreatedOn = DateTime.UtcNow
                },

                new Page
                {
                    Id = 2,
                    GetShreddedUser    = secondUser,
                    GetShreddedDiary   = diary,
                    UserId             = secondUser.Id,
                    GetShreddedDiaryId = diary.Id,
                    Content            = "Some New Content",
                    Title     = "New Page",
                    CreatedOn = DateTime.Now,
                }
            };

            var role = new IdentityRole
            {
                Name = GlobalConstants.DefaultRole
            };

            roleManager.CreateAsync(role).GetAwaiter();
            userManager.CreateAsync(secondUser).GetAwaiter();
            userManager.CreateAsync(firstUser).GetAwaiter();

            this.Context.Pages.AddRange(pages);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.SaveChanges();

            //act
            int    diaryId  = diary.Id;
            int    pageId   = pages[0].Id;
            string username = firstUser.UserName;

            Action act = () => this.pageService.DeletePage(diaryId, pageId, username);

            //assert
            string message = GlobalConstants.UserHasNoRights + " " + GlobalConstants.NotUser;

            act.Should().Throw <InvalidOperationException>().WithMessage(message);
        }
Exemplo n.º 29
0
        public void InformationReturningCorrectMesssagesAndNotificationsForUser()
        {
            //arrange
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******"
            };

            var messages = new[]
            {
                new Message
                {
                    IsReaded   = true,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 1,
                    Text       = "It works?",
                },

                new Message
                {
                    IsReaded   = false,
                    ReceiverId = user.Id,
                    Receiver   = user,
                    Id         = 2,
                    Text       = "It works two?",
                }
            };

            var notifications = new[]
            {
                new Notification
                {
                    GetShreddedUser   = user,
                    GetShreddedUserId = user.Id,
                    Message           = "boom",
                    Seen = false,
                },

                new Notification
                {
                    GetShreddedUser   = user,
                    GetShreddedUserId = user.Id,
                    Message           = "boom",
                    Seen = false,
                }
            };

            this.Context.Messages.AddRange(messages);
            this.Context.Notifications.AddRange(notifications);
            this.userManager.CreateAsync(user).GetAwaiter().GetResult();

            this.Context.SaveChanges();

            //act
            string username = user.UserName;
            var    result   = this.messageService.Information(username);

            //assert

            result.Should().BeOfType <InformationViewModel>();

            result.Notifications.As <IEnumerable <NotificationOutputModel> >()
            .Should().NotBeEmpty().And.HaveCount(2)
            .And.ContainItemsAssignableTo <NotificationOutputModel>();

            result.OldMessages.As <IEnumerable <MessageOutputModel> >()
            .Should().NotBeEmpty().And.HaveCount(1)
            .And.ContainItemsAssignableTo <MessageOutputModel>();

            result.NewMessages.As <IEnumerable <MessageOutputModel> >()
            .Should().NotBeEmpty().And.HaveCount(1)
            .And.ContainItemsAssignableTo <MessageOutputModel>();
        }
        public void DeletePageShouldThrowArgumentException()
        {
            var user = new GetShreddedUser
            {
                Id       = "UserId",
                UserName = "******",
            };

            var diary = new GetShreddedDiary
            {
                Id      = 1,
                User    = user,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var diaryTwo = new GetShreddedDiary
            {
                Id      = 2,
                User    = user,
                Summary = "Summary",
                Title   = "Title",
                UserId  = "UserId",
            };

            var pages = new[]
            {
                new Page
                {
                    Id = 1,
                    GetShreddedUser    = user,
                    GetShreddedDiary   = diary,
                    UserId             = user.Id,
                    GetShreddedDiaryId = diary.Id,
                    Content            = "Content",
                    Title     = "Title",
                    CreatedOn = DateTime.UtcNow
                },

                new Page
                {
                    Id = 2,
                    GetShreddedUser    = user,
                    GetShreddedDiary   = diaryTwo,
                    UserId             = user.Id,
                    GetShreddedDiaryId = diaryTwo.Id,
                    Content            = "Some New Content",
                    Title     = "New Page",
                    CreatedOn = DateTime.Now,
                }
            };

            userManager.CreateAsync(user).GetAwaiter();

            this.Context.Pages.AddRange(pages);
            this.Context.GetShreddedDiaries.Add(diary);
            this.Context.GetShreddedDiaries.Add(diaryTwo);
            this.Context.SaveChanges();

            //act
            int    diaryId  = diary.Id;
            int    pageId   = pages[1].Id;
            string username = user.UserName;
            Action act      = () => this.pageService.DeletePage(diaryId, pageId, username);

            //assert
            string message = string.Join(GlobalConstants.NotValidPageDiaryConnection, diaryId, pageId);

            act.Should().Throw <ArgumentException>().WithMessage(message);
        }