public void Check_a_track_played_3_hours_and_59_minutes_CANNOT_be_played_again() { // Arrange var queueRuleSettings = new Mock <IQueueRuleSettings>(); queueRuleSettings.Setup(q => q.LastXHours).Returns(4); var threeHoursAndfiftyMinutesAgo = DateTime.Now.AddHours(-3).AddMinutes(-59); queuedTrack.StartedPlayingDateTime = threeHoursAndfiftyMinutesAgo; var list = new List <QueuedTrack> { queuedTrack }; var queuedTrackDataService = new Mock <IDataService <QueuedTrack> >(); queuedTrackDataService.Setup(q => q.GetAll()).Returns(list.AsQueryable()); // Act var classUnderTest = new CannotQueueTrackThatHasPlayedInTheLastXHoursQueueRule(queuedTrackDataService.Object, queueRuleSettings.Object); var result = classUnderTest.CannotQueue(queuedTrack.Track, user); // Assert Assert.That(result.Any()); }
public void Check_a_track_played_4_hours_and_one_minute_can_be_played_again() { // Arrange var queueRuleSettings = new Mock <IQueueRuleSettings>(); queueRuleSettings.Setup(q => q.LastXHours).Returns(4); var fourHoursAgoPlusOneMinute = DateTime.Now.AddHours(-4).AddMinutes(-1); queuedTrack.StartedPlayingDateTime = fourHoursAgoPlusOneMinute; var list = new List <QueuedTrack> { queuedTrack }; var queuedTrackDataService = new Mock <IDataService <QueuedTrack> >(); queuedTrackDataService.Setup(q => q.GetAll()).Returns(list.AsQueryable()); // Act var classUnderTest = new CannotQueueTrackThatHasPlayedInTheLastXHoursQueueRule(queuedTrackDataService.Object, queueRuleSettings.Object); var result = classUnderTest.CannotQueue(queuedTrack.Track, user); // Assert Assert.That(result == string.Empty); }