예제 #1
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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));
        }
예제 #7
0
        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));
        }