public void GetIssuesByComponentType_ReturnIssues() { var componentType1 = new ComponentTypeTO { Id = 1, Archived = false, Name = new MultiLanguageString("Name1En", "Name1Fr", "Name1Nl") }; var componentType2 = new ComponentTypeTO { Id = 2, Archived = false, Name = new MultiLanguageString("Name2En", "Name2Fr", "Name2Nl") }; //Issue var issues = new List <IssueTO> { new IssueTO { Id = 1, Archived = false, Description = "Plus de café", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = componentType1 }, new IssueTO { Id = 2, Archived = false, Description = "Fuite d'eau", Name = new MultiLanguageString("Issue2EN", "Issue2FR", "Issue2NL"), ComponentType = componentType2 }, new IssueTO { Id = 3, Archived = false, Description = "Plus de PQ", Name = new MultiLanguageString("Issue3EN", "Issue3FR", "Issue3NL"), ComponentType = componentType2 }, }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(u => u.IssueRepository.GetIssuesByComponentType(It.IsAny <int>())).Returns(issues); var sut = new FSAttendeeRole(mockUnitOfWork.Object); //ACT var listOfIssues = sut.GetIssuesByComponentType(1); //ASSERT mockUnitOfWork.Verify(u => u.IssueRepository.GetIssuesByComponentType(It.IsAny <int>()), Times.Once); Assert.AreEqual(3, listOfIssues.Count); }
public void CreateIncident_InvalidStatus_ThrowsException() { // Arrange var floor = new FloorTO { Number = 2 }; var room = new RoomTO { Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = floor }; var componentType = new ComponentTypeTO { Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL") }; var issue = new IssueTO { Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = componentType }; var incident = new IncidentTO { Description = "This thing is broken !", Room = room, Issue = issue, Status = IncidentStatus.Accepted, SubmitDate = DateTime.Now, UserId = 1, }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(uow => uow.IncidentRepository.Add(It.IsAny <IncidentTO>())); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act & Assert Assert.ThrowsException <LoggedException>(() => sut.CreateIncident(incident)); mockUnitOfWork.Verify(u => u.CommentRepository.Add(It.IsAny <CommentTO>()), Times.Never); }
public void GetRoomsByFloor_ReturnRooms() { //ARRANGE //Floor var floor1 = new FloorTO { Id = 1, Number = 2 }; var floor2 = new FloorTO { Id = 2, Number = -1 }; //Room var rooms = new List <RoomTO> { new RoomTO { Id = 1, Archived = false, Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = floor1 }, new RoomTO { Id = 2, Archived = false, Name = new MultiLanguageString("Room2", "Room2", "Room2"), Floor = floor1 }, new RoomTO { Id = 3, Archived = false, Name = new MultiLanguageString("Room3", "Room3", "Room3"), Floor = floor2 } }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(u => u.RoomRepository.GetRoomsByFloor(It.IsAny <int>())).Returns(rooms); var sut = new FSAttendeeRole(mockUnitOfWork.Object); //ACT var listOfRooms = sut.GetRoomsByFloor(1); //ASSERT mockUnitOfWork.Verify(u => u.RoomRepository.GetRoomsByFloor(It.IsAny <int>()), Times.Once); Assert.AreEqual(3, listOfRooms.Count); }
public void GetFloors_AddThreeFloorsThenRetrieveThem_ReturnCorrectNumberOfFloors() { //ARRANGE var mockUnitOfWork = new Mock <IFSUnitOfWork>(); var floors = new List <FloorTO> { new FloorTO { Id = 1, Archived = false }, new FloorTO { Id = 2, Archived = false }, new FloorTO { Id = 3, Archived = false }, }; mockUnitOfWork.Setup(u => u.FloorRepository.GetAll()).Returns(floors); var sut = new FSAttendeeRole(mockUnitOfWork.Object); //ACT var listOfFloors = sut.GetFloors(); //ASSERT mockUnitOfWork.Verify(u => u.FloorRepository.GetAll(), Times.Once); Assert.AreEqual(3, listOfFloors.Count); }
public void GetCommentsByIncident_ReturnComments() { //ARRANGE var comments = new List <CommentTO> { new CommentTO { Id = 1, Incident = new IncidentTO { Id = 1 }, Message = "Message 1", SubmitDate = DateTime.Now, UserId = 1 }, new CommentTO { Id = 2, Incident = new IncidentTO { Id = 1 }, Message = "Message 2", SubmitDate = DateTime.Now.AddDays(1), UserId = 1 }, new CommentTO { Id = 3, Incident = new IncidentTO { Id = 1 }, Message = "Message 3", SubmitDate = DateTime.Now.AddDays(2), UserId = 1 }, }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(u => u.CommentRepository.GetCommentsByIncident(It.IsAny <int>())).Returns(comments); var sut = new FSAttendeeRole(mockUnitOfWork.Object); //ACT var result = sut.GetCommentsByIncident(1); //ASSERT mockUnitOfWork.Verify(u => u.CommentRepository.GetCommentsByIncident(It.IsAny <int>()), Times.Once); Assert.AreEqual(3, result.Count); }
public void GetIssuesByComponentType_IncorrectRoomID_ThrowLoggedException() { //ARRANGE var mockUnitOfWork = new Mock <IFSUnitOfWork>(); var sut = new FSAttendeeRole(mockUnitOfWork.Object); Assert.ThrowsException <LoggedException>(() => sut.GetIssuesByComponentType(-1)); }
public void GetUserIncidents_ThrowException_WhenInvalidIdIsSupplied() { // Arrange var mockUnitOfWork = new Mock <IFSUnitOfWork>(); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act & Assert Assert.ThrowsException <LoggedException>(() => sut.GetUserIncidents(0)); Assert.ThrowsException <LoggedException>(() => sut.GetUserIncidents(-1)); }
public void GetCommentsByIncident_ThrowException_WhenInvalidIdIsSupplied() { //ARRANGE var mockUnitOfWork = new Mock <IFSUnitOfWork>(); var sut = new FSAttendeeRole(mockUnitOfWork.Object); //ACT & ASSERT Assert.ThrowsException <LoggedException>(() => sut.GetCommentsByIncident(0)); Assert.ThrowsException <LoggedException>(() => sut.GetCommentsByIncident(-1)); }
public void CreateIncident_NullIncident_ThrowsException() { // Arrange var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(uow => uow.IncidentRepository.Add(It.IsAny <IncidentTO>())); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act & Assert Assert.ThrowsException <ArgumentNullException>(() => sut.CreateIncident(null)); mockUnitOfWork.Verify(u => u.CommentRepository.Add(It.IsAny <CommentTO>()), Times.Never); }
public void GetRoomsByFloor_IncorrectRoomID_ThrowLoggedException() { //ARRANGE var mockUnitOfWork = new Mock <IFSUnitOfWork>(); var sut = new FSAttendeeRole(mockUnitOfWork.Object); //ACT //ASSERT Assert.ThrowsException <LoggedException>(() => sut.GetRoomsByFloor(0)); Assert.ThrowsException <LoggedException>(() => sut.GetRoomsByFloor(-1)); }
public void GetComponentTypesByRoom_ReturnRooms() { //Floor var floor1 = new FloorTO { Number = 2 }; var floor2 = new FloorTO { Number = -1 }; //Room var rooms = new List <RoomTO> { new RoomTO { Id = 1, Archived = false, Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = floor1 }, new RoomTO { Id = 2, Archived = false, Name = new MultiLanguageString("Room2", "Room2", "Room2"), Floor = floor1 }, new RoomTO { Id = 3, Archived = false, Name = new MultiLanguageString("Room3", "Room3", "Room3"), Floor = floor2 } }; var componentTypes = new List <ComponentTypeTO> { new ComponentTypeTO { Id = 1, Archived = false, Name = new MultiLanguageString("Name1", "Name1", "Name1") }, new ComponentTypeTO { Id = 2, Archived = false, Name = new MultiLanguageString("Name2", "Name2", "Name2") }, new ComponentTypeTO { Id = 3, Archived = false, Name = new MultiLanguageString("Name3", "Name3", "Name3") }, }; //ARRANGE var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(u => u.ComponentTypeRepository.GetComponentTypesByRoom(It.IsAny <int>())) .Returns(componentTypes); var sut = new FSAttendeeRole(mockUnitOfWork.Object); var room = new ComponentTypeTO { Id = 1, Archived = false, Name = new MultiLanguageString("Name1", "Name1", "Name1") }; //ACT var result = sut.GetComponentTypesByRoom(room.Id); //ASSERT mockUnitOfWork.Verify(u => u.ComponentTypeRepository.GetComponentTypesByRoom(It.IsAny <int>()), Times.Once); Assert.IsNotNull(result); }
public void CreateIncident_IncidentIdNotZero_ThrowsException() { // Arrange var incident = new IncidentTO { Id = 1 }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(uow => uow.IncidentRepository.Add(It.IsAny <IncidentTO>())); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act & Assert Assert.ThrowsException <LoggedException>(() => sut.CreateIncident(incident)); mockUnitOfWork.Verify(u => u.CommentRepository.Add(It.IsAny <CommentTO>()), Times.Never); }
public void CreateIncident_ValidIncident_ReturnsIncidentNotNull() { // Arrange var floor = new FloorTO { Number = 2 }; var room = new RoomTO { Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = floor }; var componentType = new ComponentTypeTO { Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL") }; var issue = new IssueTO { Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = componentType }; var incident = new IncidentTO { Description = "This thing is broken !", Room = room, Issue = issue, Status = IncidentStatus.Waiting, SubmitDate = DateTime.Now, UserId = 1, }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(uow => uow.IncidentRepository.Add(It.IsAny <IncidentTO>())).Returns((IncidentTO incident) => { incident.Id = 1; return(incident); }); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act var result = sut.CreateIncident(incident); // Assert Assert.IsTrue(result); mockUnitOfWork.Verify(u => u.IncidentRepository.Add(It.IsAny <IncidentTO>()), Times.Once); }
public void CreateIncident_IncompleteIncident_ThrowsException() { // Arrange var incident1 = new IncidentTO(); // Missing Issue & Room var componentType = new ComponentTypeTO { Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL") }; var issue = new IssueTO { Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = componentType }; var incident2 = new IncidentTO { Issue = issue }; // Missing Room var floor = new FloorTO { Number = 2 }; var room = new RoomTO { Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = floor }; var incident3 = new IncidentTO { Room = room }; // Missing Issue var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(uow => uow.IncidentRepository.Add(It.IsAny <IncidentTO>())); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act & Assert Assert.ThrowsException <LoggedException>(() => sut.CreateIncident(incident1)); Assert.ThrowsException <LoggedException>(() => sut.CreateIncident(incident2)); Assert.ThrowsException <LoggedException>(() => sut.CreateIncident(incident3)); mockUnitOfWork.Verify(u => u.CommentRepository.Add(It.IsAny <CommentTO>()), Times.Never); }
public void GetUserIncidents_AddThreeIncidentsWithSameUserId_ThenRetrieveThem_ReturnsCorrectNumberOfIncidents() { // Arrange var userId = 1; var floor = new FloorTO { Number = 2 }; var room = new RoomTO { Name = new MultiLanguageString("Room1", "Room1", "Room1"), Floor = floor }; var componentType = new ComponentTypeTO { Archived = false, Name = new MultiLanguageString("Name1EN", "Name1FR", "Name1NL") }; var issue = new IssueTO { Description = "Broken thing", Name = new MultiLanguageString("Issue1EN", "Issue1FR", "Issue1NL"), ComponentType = componentType }; var incident1 = new IncidentTO { Description = "This thing is broken !", Room = room, Issue = issue, Status = IncidentStatus.Waiting, SubmitDate = DateTime.Now, UserId = userId, }; var incident2 = new IncidentTO { Description = "This thing is still broken !", Room = room, Issue = issue, Status = IncidentStatus.Waiting, SubmitDate = DateTime.Now.AddDays(7), UserId = userId, }; var incident3 = new IncidentTO { Description = "This hasn't been fixed yet ?!", Room = room, Issue = issue, Status = IncidentStatus.Waiting, SubmitDate = DateTime.Now.AddDays(14), UserId = userId, }; var incidents = new List <IncidentTO> { incident1, incident2, incident3 }; var mockUnitOfWork = new Mock <IFSUnitOfWork>(); mockUnitOfWork.Setup(uow => uow.IncidentRepository.Add(It.IsAny <IncidentTO>())).Returns(new IncidentTO()); mockUnitOfWork.Setup(uow => uow.IncidentRepository.GetIncidentsByUserId(It.Is <int>(i => i > 0))).Returns(incidents); var sut = new FSAttendeeRole(mockUnitOfWork.Object); // Act sut.CreateIncident(incident1); sut.CreateIncident(incident2); sut.CreateIncident(incident3); var userIncidents = sut.GetUserIncidents(userId); // Assert mockUnitOfWork.Verify(u => u.IncidentRepository.Add(It.IsAny <IncidentTO>()), Times.Exactly(3)); Assert.AreEqual(3, userIncidents.Count()); }