public async Task ScrobbleFailTest() { // given: mocks User user = new User("TestUser", "TestToken", false); Mock <IAuthScrobbler> scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); IEnumerable <Scrobble> actual = null; scrobblerMock.Setup(u => u.ScrobbleAsync(It.IsAny <IEnumerable <Scrobble> >())).Callback <IEnumerable <Scrobble> >((s) => actual = s) .Returns(Task.Run(() => new ScrobbleResponse(LastResponseStatus.Unknown))); Mock <IAuthScrobbler> cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); var scrobbles = TestHelper.CreateGenericScrobbles(10); // when: trying to scrobble var response = await userScrobbler.ScrobbleAsync(scrobbles, false); // then: no scrobbles added to the user, because scrobbling failed Assert.That(user.RecentScrobbles.Count, Is.EqualTo(0)); Assert.That(response.Success, Is.False); Assert.That(response.Status == LastResponseStatus.Unknown); }
public void CapTest() { // given: capped user and mocks User user = TestHelper.CreateCappedUser(); var scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); var cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); // when: trying to scrobble // then: exception Assert.That(async() => await userScrobbler.ScrobbleAsync(new Scrobble()), Throws.InvalidOperationException); }
public void CapTest() { // given: mocks User user = new User("TestUser", "TestToken", false); var scrobbles = TestHelper.CreateGenericScrobbles(User.MAXSCROBBLESPERDAY); user.AddScrobbles(scrobbles, DateTime.Now); Mock <IAuthScrobbler> scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); Mock <IAuthScrobbler> cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); // when: trying to scrobble // then: exception Assert.That(async() => await userScrobbler.ScrobbleAsync(new Scrobble()), Throws.InvalidOperationException); }
public void NoAuthenticationTest() { // given: mocks User user = new User("TestUser", "TestToken", false); Mock <IAuthScrobbler> scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); Mock <ILastAuth> authMock = new Mock <ILastAuth>(MockBehavior.Strict); authMock.Setup(a => a.Authenticated).Returns(false); scrobblerMock.Setup(s => s.Auth).Returns(authMock.Object); Mock <IAuthScrobbler> cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); cachingScrobblerMock.Setup(s => s.Auth).Returns(authMock.Object); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); // when: checking the auth status // then: should be false Assert.That(userScrobbler.IsAuthenticated, Is.False); }
public void CapTest() { // given: mocks User user = new User("TestUser", "TestToken", false); Scrobble[] scrobbles = new Scrobble[User.MAXSCROBBLESPERDAY]; for (int i = 0; i < User.MAXSCROBBLESPERDAY; i++) { scrobbles[i] = new Scrobble(); } user.AddScrobbles(scrobbles, DateTime.Now); Mock <IAuthScrobbler> scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); Mock <IAuthScrobbler> cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); // when: trying to scrobble // then: exception Assert.That(async() => await userScrobbler.ScrobbleAsync(new Scrobble()), Throws.InvalidOperationException); }
public async Task ScrobbleMultipleTest() { // given: mocks User user = TestHelper.CreateUserWithRecentTracks(Enumerable.Empty <LastTrack>()); var scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); IEnumerable <Scrobble> actual = null; scrobblerMock.Setup(u => u.ScrobbleAsync(It.IsAny <IEnumerable <Scrobble> >())).Callback <IEnumerable <Scrobble> >((s) => actual = s) .Returns(Task.Run(() => new ScrobbleResponse(LastResponseStatus.Successful))); var cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); var expected = TestHelper.CreateGenericScrobbles(10); // when: scrobbling await userScrobbler.ScrobbleAsync(expected, false); // then: correctly scrobbled Assert.That(TestHelper.IsEqualScrobble(actual, expected)); }
public async Task ScrobbleMultipleTest() { // given: mocks User user = new User("TestUser", "TestToken", false); Mock <IAuthScrobbler> scrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); IEnumerable <Scrobble> actual = null; scrobblerMock.Setup(u => u.ScrobbleAsync(It.IsAny <IEnumerable <Scrobble> >())).Callback <IEnumerable <Scrobble> >((s) => actual = s) .Returns(Task.Run(() => new ScrobbleResponse(LastResponseStatus.Successful))); Mock <IAuthScrobbler> cachingScrobblerMock = new Mock <IAuthScrobbler>(MockBehavior.Strict); UserScrobbler userScrobbler = new UserScrobbler(user, scrobblerMock.Object, cachingScrobblerMock.Object); var expected = TestHelper.CreateGenericScrobbles(10); // when: scrobbling await userScrobbler.ScrobbleAsync(expected, false); // then: correctly scrobbled and saved to the user Assert.That(user.RecentScrobbles.Count, Is.EqualTo(expected.Length)); Assert.That(TestHelper.IsEqualScrobble(actual, expected)); }