Beispiel #1
0
        public void TestOnlyAdminCanRemoveThreads()
        {
            var role = new Role(new[]
            {
                Permission.CreateChat,
                Permission.DeleteThread,
            });

            var user = new User("TestUser", role);

            user.Login();

            var chatDao     = new ChatDao();
            var httpContext = new HttpContext();
            var chatService = new ChatService(httpContext, chatDao, new UserDao());
            var chatId      = chatService.NewChat(user);

            const string title   = "A new thread";
            const string message = "Let's discuss things...";

            chatService.AddThread(chatId, user, user.Username, title, message);

            var chat   = chatDao.GetChatById(chatId);
            var thread = chat.Threads.First();

            chat = chatDao.GetChatById(chatId);

            Assert.That(chat.Threads.Count, Is.EqualTo(1));

            chatService.DeleteThread(user, chat.Id, thread.ThreadId);

            chat = chatDao.GetChatById(chatId);

            Assert.That(chat.Threads.Count, Is.EqualTo(0));
        }
Beispiel #2
0
        public void TestSprintCapacity()
        {
            var role = new Role(new [] { Permission.AssignSprint });
            var user = new User(role);

            user.Login();
            var httpContext     = new HttpContext();
            var planningService = new PlanningService(httpContext);
            var sprint          = planningService.CreateSprint(10);

            sprint.Start();
            var ticket1 = planningService.NewTicket();

            ticket1.AddPlannedEffort(3);
            planningService.AssignToCurrentIteration(user, ticket1);
            var ticket2 = planningService.NewTicket();

            ticket2.AddPlannedEffort(3);
            planningService.AssignToCurrentIteration(user, ticket2);
            var ticket3 = planningService.NewTicket();

            ticket3.AddPlannedEffort(5);
            planningService.AssignToCurrentIteration(user, ticket3);
            Assert.That(httpContext.StatusCode, Is.EqualTo(302));
            Assert.That(httpContext.Path, Is.EqualTo("/iterations/"));
        }
Beispiel #3
0
        public void TestUpdatingBillingAddress()
        {
            var role = new Role(new[] { Permission.ChangeUserDetails });
            var user = new User("Jane", "Doe", "JaneDoe", role);

            user.BillingAddress1 = "Address 1 Foo";
            user.BillingAddress2 = "Address 2 Foo";
            user.BillingTown     = "Address Town Foo";
            user.BillingPostcode = "Address Postcode Foo";

            var userDao = new UserDao();

            user.Login();

            userDao.SaveUser(user);

            var userService = new UserService(userDao);

            userService.ChangeBillingAddress(user.Username, "Address 1 Bar", "Address 2 Bar", "Address Town Bar", "Address Postcode Bar");

            user = userDao.GetUserByUsername(user.Username);

            Assert.That(user.BillingAddress1, Is.EqualTo("Address 1 Bar"));
            Assert.That(user.BillingAddress2, Is.EqualTo("Address 2 Bar"));
            Assert.That(user.BillingTown, Is.EqualTo("Address Town Bar"));
            Assert.That(user.BillingPostcode, Is.EqualTo("Address Postcode Bar"));
        }
Beispiel #4
0
        public void TestAddThreadNullUsername()
        {
            var role = new Role(new[] { Permission.CreateChat, Permission.DeleteThread });
            var user = new User("TestUser", role);

            user.Login();
            var chatService = new ChatService(new HttpContext(), new ChatDao(), new UserDao());
            var chatId      = chatService.NewChat(user);

            Assert.Throws <Exception>(() => chatService.AddThread(chatId, user, null, "A new thread", "Let's discuss things..."));
        }
Beispiel #5
0
        public void TestUpdatingTicketStatus()
        {
            var role = new Role(new [] { Permission.UpdateTicketStatus });
            var user = new User(role);

            user.Login();
            var planningService = new PlanningService(new HttpContext());
            var ticket          = planningService.NewTicket();

            planningService.UpdateTicketStatus(user, ticket.TicketId, TaskStatus.InProgress);
            Assert.That(ticket.Status, Is.EqualTo(TaskStatus.InProgress));
        }
Beispiel #6
0
        public void TestAddThreadNullBigMessage()
        {
            var bigMessage = @"m5Aslui7JrlllllvPmJ3WN1U0RurLXQnr7ffGuOJZpHkoA3dTxE9F97dEgW81q9vbvCNQWhxWtwytGB2eOgULO8M9zSAoBBMa5DkuhrMEMp70S2ih114RNsWyOz4l23jwXkgZqwVf4rd6Qwxtavqop1gagWtmNiVHRmgTfYJHa7qKkJO5TkVagh7USR1Rl9o3T0jJAa2RO3zM7cQgugRne6Lwq6KsujXyeBpfZ6NKgrkhv7EJ8o1CjYDI2eKOaCdnoCInHPQpmjTiibClHzPVqBoLhHui1zT9k7lp9evhNj0IsNmAwAHxpr7cbqh5RpIlId7HClrpmQFo2NH9o9pddvqHV7ekzKZclKTIsm2p6eNhDcxULtQPiy4AuYDChqUaZhSpX3q8CtkdihwcIBecU9PKFA7lappbhlddlIqaNg4b3urRfAyKjhEc2P7NetMYn9AXjPWOAwHMBPyvrvD0HZ10w7ZW3G6zqRGu14LwnnOOCHNNqbJesD1IJkLNUI6gQe8wY3tlXXDkg65fHzJ0f7UE6YVQYrrzgI4N59Ml7i6l1roVlgEcTBlFTrAShHl9gnernqweg9eay421KbKEsVxeypY5w1dvOQzWsuRF1B0eDGkaXfsW9lI9jdQxiaBd9sIr3p69yfXXt1ljq6rimEmQAb9ydg4Gdg794qZ6HFl1oS2JTets1FWuMj4l0WCvo82IZbSx3Sn4uBj0zvCmptCaz9kElruEn2no3haXsffyvlhHlgmuN9DSSO9oWq7f4tEdYjQLPhsvwGs3eDahArfDjd54shPQGzYTKDYrPs54wADt1brZ7dQM211hTfrGHgKhl0dYILbD2qG1BOodrGA0lM95JExmXfMnmgPjuDspKFUxtzu20HVpDaxh8aCtf50iiWInCNFq2CAHwITjjhs2GnWXMTNQs4fRRacYrsS6oTr4CLcim80HrXIHUbURhnVC7JaOCqK8ZuTyEnejTQYkr3iz0TSAVfgqvJnQ";
            var role       = new Role(new[] { Permission.CreateChat, Permission.DeleteThread });
            var user       = new User("TestUser", role);

            user.Login();
            var chatService = new ChatService(new HttpContext(), new ChatDao(), new UserDao());
            var chatId      = chatService.NewChat(user);

            Assert.Throws <Exception>(() => chatService.AddThread(chatId, user, user.Username, "A new thread", bigMessage));
        }
Beispiel #7
0
        public void TestAddThreadNullBigTitle()
        {
            var bigTitle = @"72I99cSDwYde35dfwEWQotonxqH0jnmgwmXYkWlzz5AXnmXeufiUSO3sosVeX6rHSK4XfgWS8RzTdkPIV1Kl5WydmfLu81jgWxI1KG7QvrGkpRBAicvFr42mVPjgMVK6q5jNBAfwEyWHChT5CYboNYXz0uApYjFuedbIo7he1hy8iUd2cttBXQ74LnDvPl7uoatL2iJwTuhtbAknQTfBcbEmLMZgK0lzWuDUri6KLArgglCchXGdfKQx14H";
            var role     = new Role(new[] { Permission.CreateChat, Permission.DeleteThread });
            var user     = new User("TestUser", role);

            user.Login();
            var chatService = new ChatService(new HttpContext(), new ChatDao(), new UserDao());
            var chatId      = chatService.NewChat(user);

            Assert.Throws <Exception>(() => chatService.AddThread(chatId, user, user.Username, bigTitle, "Let's discuss things..."));
        }
Beispiel #8
0
        public void TestAddingChat()
        {
            var role = new Role(new[] { Permission.CreateChat });
            var user = new User("TestUser", role);

            user.Login();
            var chatDao     = new ChatDao();
            var chatService = new ChatService(new HttpContext(), chatDao, new UserDao());
            var chatId      = chatService.NewChat(user);
            var chat        = chatDao.GetChatById(chatId);

            Assert.That(chat.CreatedBy, Is.EqualTo(user.Username));
        }
Beispiel #9
0
        public void TestAddingCommentToThread()
        {
            var role = new Role(new[]
            {
                Permission.CreateChat,
                Permission.DeleteThread,
                Permission.AddMessage
            });

            var user = new User("TestUser", role);

            user.Login();

            var chatDao     = new ChatDao();
            var httpContext = new HttpContext();
            var chatService = new ChatService(httpContext, chatDao, new UserDao());
            var chatId      = chatService.NewChat(user);

            const string title   = "A new thread";
            const string message = "Let's discuss things...";

            chatService.AddThread(chatId, user, user.Username, title, message);

            var chat   = chatDao.GetChatById(chatId);
            var thread = chat.Threads.First();

            var dev1 = new User("JaneDoe", role);
            var dev2 = new User("JohnDoe", role);

            dev1.Login();
            dev2.Login();

            var userDao = new UserDao();

            userDao.SaveUser(dev1);
            userDao.SaveUser(dev2);

            chatService.AddCommentToThread(thread.ThreadId, chatId, "Hello, world!", dev1.Username);
            chatService.AddCommentToThread(thread.ThreadId, chatId, "Foo, bar, baz.", dev2.Username);

            chat = chatDao.GetChatById(chatId);

            var comments = chat.Threads.First().Comments;

            Assert.That(comments[0].Username, Is.EqualTo("JaneDoe"));
            Assert.That(comments[0].Message, Is.EqualTo("Hello, world!"));
            Assert.That(comments[1].Username, Is.EqualTo("JohnDoe"));
            Assert.That(comments[1].Message, Is.EqualTo("Foo, bar, baz."));
        }
Beispiel #10
0
        public void TestAssignTicketToSprint()
        {
            var role = new Role(new [] { Permission.AssignSprint });
            var user = new User(role);

            user.Login();
            var planningService = new PlanningService(new HttpContext());
            var sprint          = planningService.CreateSprint(10);

            sprint.Start();
            var ticket = planningService.NewTicket();

            planningService.AssignToCurrentIteration(user, ticket);
            Assert.That(ticket.IterationPlanned, Is.EqualTo(sprint));
        }
Beispiel #11
0
        public void TestUpdatingFirstNameLastName()
        {
            var role = new Role(new [] { Permission.ChangeUserDetails });
            var user = new User("Jane", "Doe", "JaneDoe", role);

            var userDao = new UserDao();

            user.Login();

            userDao.SaveUser(user);

            var userService = new UserService(userDao);

            userService.ChangeName(user.Username, "Joan", "Doh");

            user = userDao.GetUserByUsername(user.Username);

            Assert.That(user.FirstName, Is.EqualTo("Joan"));
            Assert.That(user.LastName, Is.EqualTo("Doh"));
        }
Beispiel #12
0
        public void TestUpdatingEmail()
        {
            var role = new Role(new[] { Permission.ChangeUserDetails });
            var user = new User("Jane", "Doe", "JaneDoe", role);

            user.Email = "*****@*****.**";

            var userDao = new UserDao();

            user.Login();

            userDao.SaveUser(user);

            var userService = new UserService(userDao);

            userService.ChangeEmail(user.Username, "*****@*****.**");

            user = userDao.GetUserByUsername(user.Username);

            Assert.That(user.Email, Is.EqualTo("*****@*****.**"));
        }
Beispiel #13
0
        public void TestOnlyBACanRemoveTickets()
        {
            var role = new Role(new[] { Permission.RemoveFromIteration });
            var user = new User(role);

            user.Login();
            var httpContext     = new HttpContext();
            var planningService = new PlanningService(httpContext);
            var sprint          = planningService.CreateSprint(10);

            sprint.Start();
            var ticket1 = planningService.NewTicket();

            ticket1.AddPlannedEffort(3);
            planningService.AssignToCurrentIteration(user, ticket1);
            var ticket2 = planningService.NewTicket();

            ticket2.AddPlannedEffort(3);
            planningService.AssignToCurrentIteration(user, ticket2);
            var ticket3 = planningService.NewTicket();

            ticket3.AddPlannedEffort(5);
            planningService.AssignToCurrentIteration(user, ticket3);

            planningService.DeleteTicket(ticket1, user);
            planningService.DeleteTicket(ticket2, user);

            Assert.That(ticket1.IterationPlanned, Is.EqualTo(null));
            Assert.That(ticket2.IterationPlanned, Is.EqualTo(null));
            Assert.That(ticket3.IterationPlanned, Is.EqualTo(sprint));
            Assert.That(planningService.GetCurrentSprint().Tasks.Count, Is.EqualTo(1));

            var anotherRole = new Role(new[] { Permission.UpdateTaskDetails });
            var dev         = new User(anotherRole);

            Assert.Throws <Exception>(() => planningService.DeleteTicket(ticket3, dev));
        }
Beispiel #14
0
        public void TestAdditionalUsersCanDoWorkOnTicketsForCurrentIteration()
        {
            var role = new Role(new[] { Permission.AssignSprint });
            var user = new User(role);

            user.Login();
            var httpContext     = new HttpContext();
            var planningService = new PlanningService(httpContext);
            var sprint          = planningService.CreateSprint(10);

            sprint.Start();
            var ticket1 = planningService.NewTicket();

            ticket1.AddPlannedEffort(3);
            planningService.AssignToCurrentIteration(user, ticket1);
            var ticket2 = planningService.NewTicket();

            ticket2.AddPlannedEffort(3);
            planningService.AssignToCurrentIteration(user, ticket2);
            var ticket3 = planningService.NewTicket();

            ticket3.AddPlannedEffort(5);
            planningService.AssignToCurrentIteration(user, ticket3);

            var team1 = new User(role);
            var team2 = new User(role);
            var team3 = new User(role);

            planningService.UpdateTicketWithUser(ticket1, team1);
            planningService.UpdateTicketWithUser(ticket1, team2);
            planningService.UpdateTicketWithUser(ticket1, team3);

            var ticketWithTeam = planningService.GetTaskById(ticket1.TicketId);

            Assert.That(ticketWithTeam.Users.Count, Is.EqualTo(3));
        }
Beispiel #15
0
        public void TestAddingThreadToChat()
        {
            var role = new Role(new[] { Permission.CreateChat, Permission.DeleteThread });
            var user = new User("TestUser", role);

            user.Login();
            var chatDao     = new ChatDao();
            var httpContext = new HttpContext();
            var chatService = new ChatService(httpContext, chatDao, new UserDao());
            var chatId      = chatService.NewChat(user);

            const string title   = "A new thread";
            const string message = "Let's discuss things...";

            chatService.AddThread(chatId, user, user.Username, title, message);

            var chat = chatDao.GetChatById(chatId);

            Assert.That(chat.CreatedBy, Is.EqualTo(user.Username));
            Assert.That(chat.Threads.First().Username, Is.EqualTo(user.Username));
            Assert.That(chat.Threads.First().Title, Is.EqualTo(title));
            Assert.That(chat.Threads.First().Message, Is.EqualTo(message));
            Assert.That(httpContext.Path, Is.EqualTo($"/{chatId}/threads/"));
        }