1: [TestFixture]
2: public class AdminControllerTests
3: {
4: private Mock<IFacilityRepository> facilityRepository;
5: private Mock<IMeetingRepository> meetingRepository;
6: private Mock<IUserSession> userSession;
7:
8: [SetUp]
9: public void SetUp()
10: {
11: facilityRepository = new Mock<IFacilityRepository>();
12: meetingRepository = new Mock<IMeetingRepository>();
13: userSession = new Mock<IUserSession>();
14: }
15:
16: [Test]
17: public void SaveMeeting_should_call_Add_on_MeetingRepository_if_MeetingId_is_zero()
18: {
19: // Arrange
20: var meetingData = new MeetingData { MeetingId = 0, FacilityId = 0 };
21: meetingRepository.Setup(x => x.GetById(0)).Returns(new Meeting());
22: facilityRepository.Setup(x => x.GetById(0)).Returns(new Facility());
23: var controller = GetController();
24:
25: // Act
26: controller.SaveMeeting(meetingData);
27:
28: // Assert
29: meetingRepository.Verify(x => x.Add(It.IsAny<Meeting>()));
30: meetingRepository.Verify(x => x.Update(It.IsAny<Meeting>(), Times.Never()));
31: }
32:
33: [Test]
34: public void SaveMeeting_should_call_Update_on_MeetingRepository_if_MeetingId_is_not_zero()
35: {
36: // Arrange
37: var meetingData = new MeetingData { MeetingId = 1, FacilityId = 1 };
38: meetingRepository.Setup(x => x.GetById(1)).Returns(new Meeting());
39: facilityRepository.Setup(x => x.GetById(1)).Returns(new Facility());
40: var controller = GetController();
41:
42: // Act
43: controller.SaveMeeting(meetingData);
44:
45: // Assert
46: meetingRepository.Verify(x => x.Add(It.IsAny<Meeting>(), Times.Never()));
47: meetingRepository.Verify(x => x.Update(It.IsAny<Meeting>()));
48: }
49:
50: private AdminController GetController()
51: {
52: return new AdminController(userSession.Object, meetingRepository.Object, facilityRepository.Object);
53: }
54: }