public void SwagOMeterAwardEngineShouldNotBeAbleToSwagWhenAnAttendeeDoesntWantTheSwagAndTheOtherAttendeeHasLeft() { // Arrange var stubAttendee1 = new Mock<IAttendee>(); stubAttendee1.SetupGet(a => a.Name).Returns("Bob"); var stubAttendee2 = new Mock<IAttendee>(); stubAttendee2.SetupGet(a => a.Name).Returns("Fred"); var stubSwagObject = new Mock<ISwag>(); stubSwagObject.SetupGet(a => a.Thing).Returns("Pants"); var stubAttendees = new List<IAttendee> { stubAttendee1.Object, stubAttendee2.Object }; var stubSwag = new List<ISwag> { stubSwagObject.Object }; var stubAttendeeSource = new Mock<IAttendeeSource>(); stubAttendeeSource.Setup(sa => sa.Load(It.IsAny<string>())).Returns(stubAttendees); var stubSwagSource = new Mock<ISwagSource>(); stubSwagSource.Setup(ss => ss.Load(It.IsAny<string>())).Returns(stubSwag); // Act var awardEngine = new SwagOMeterAwardEngine(stubAttendeeSource.Object, stubSwagSource.Object); awardEngine.AwardSwag(); awardEngine.AttendeeDoesNotWantSwag(); awardEngine.AwardSwag(); awardEngine.AttendeeNotPresent(); // Assert Assert.IsNull(awardEngine.WinningAttendee); Assert.IsNull(awardEngine.AwardedSwag); Assert.IsFalse(awardEngine.CanSwag); }
public void SwagOMeterAwardEngineShouldHaveCanSwagSetToFalseWhenAWinnerIsNotPresentAndTheSwagIsReAssignedButOnlyOneAttendeeAndSwagIsLeft() { // Arrange var stubAttendee = new Mock<IAttendee>(); var stubSwagObject = new Mock<ISwag>(); var stubAttendees = new List<IAttendee> { stubAttendee.Object }; var stubSwag = new List<ISwag> { stubSwagObject.Object }; var stubAttendeeSource = new Mock<IAttendeeSource>(); stubAttendeeSource.Setup(sa => sa.Load(It.IsAny<string>())).Returns(stubAttendees); var stubSwagSource = new Mock<ISwagSource>(); stubSwagSource.Setup(ss => ss.Load(It.IsAny<string>())).Returns(stubSwag); // Act var awardEngine = new SwagOMeterAwardEngine(stubAttendeeSource.Object, stubSwagSource.Object); awardEngine.AwardSwag(); awardEngine.AttendeeNotPresent(); // Assert Assert.IsNull(awardEngine.WinningAttendee); Assert.IsNull(awardEngine.AwardedSwag); Assert.IsFalse(awardEngine.CanSwag); }
public void SwagOMeterAwardEngineShouldHaveCanSwagSetToTrueWhenAWinnerIsNotPresentAndTheSwagIsReAssigned() { // Arrange var mockAttendee1 = new Mock<IAttendee>(); var mockAttendee2 = new Mock<IAttendee>(); var mockSwag = new Mock<ISwag>(); var stubAttendees = new List<IAttendee> { mockAttendee1.Object, mockAttendee2.Object }; var stubSwag = new List<ISwag> { mockSwag.Object }; var stubAttendeeSource = new Mock<IAttendeeSource>(); stubAttendeeSource.Setup(sa => sa.Load(It.IsAny<string>())).Returns(stubAttendees); var stubSwagSource = new Mock<ISwagSource>(); stubSwagSource.Setup(ss => ss.Load(It.IsAny<string>())).Returns(stubSwag); var mockWinnersSource = new Mock<IWinnersSource>(); // Act var awardEngine = new SwagOMeterAwardEngine(stubAttendeeSource.Object, stubSwagSource.Object); awardEngine.AwardSwag(); awardEngine.AttendeeNotPresent(); awardEngine.SaveWinners(mockWinnersSource.Object); // Assert Assert.IsNull(awardEngine.WinningAttendee); Assert.IsNull(awardEngine.AwardedSwag); Assert.IsTrue(awardEngine.CanSwag); mockWinnersSource.Verify(ws => ws.Save(It.IsAny<IList<IWinner>>()), Times.Never()); }
public void SwagOMeterAwardEngineShouldHaveCanSwagSetToFalseWhenAWinnerIsNotPresentAndTheSwagIsReAssignedAndReAwarded() { // Arrange var mockAttendee1 = new Mock<IAttendee>(); var mockAttendee2 = new Mock<IAttendee>(); var mockSwag = new Mock<ISwag>(); var stubAttendees = new List<IAttendee> { mockAttendee1.Object, mockAttendee2.Object }; var stubSwag = new List<ISwag> { mockSwag.Object }; var stubAttendeeSource = new Mock<IAttendeeSource>(); stubAttendeeSource.Setup(sa => sa.Load(It.IsAny<string>())).Returns(stubAttendees); var stubSwagSource = new Mock<ISwagSource>(); stubSwagSource.Setup(ss => ss.Load(It.IsAny<string>())).Returns(stubSwag); // Act var awardEngine = new SwagOMeterAwardEngine(stubAttendeeSource.Object, stubSwagSource.Object); awardEngine.AwardSwag(); awardEngine.AttendeeNotPresent(); awardEngine.AwardSwag(); // Assert Assert.IsNotNull(awardEngine.WinningAttendee); Assert.AreEqual(mockSwag.Object, awardEngine.AwardedSwag); Assert.IsFalse(awardEngine.CanSwag); }