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)); }
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/")); }
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")); }
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...")); }
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)); }
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)); }
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...")); }
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)); }
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.")); }
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)); }
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")); }
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("*****@*****.**")); }
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)); }
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)); }
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/")); }