public void EnsurePropertiesPersist()
        {
            var cmd = new GetUserPlayHistoryCommand();

            cmd.Action = UserEventAction.Complete;
            Assert.AreEqual(UserEventAction.Complete, cmd.Action, "Expected the right value");
        }
        public void EnsureAppendUriPathThrowsExceptionForNoUserId()
        {
            var           cmd = new GetUserPlayHistoryCommand();
            StringBuilder sb  = new StringBuilder();

            cmd.AppendUriPath(sb);
        }
        public void EnsureBuildParamsDoesNotSendUnknownFilters()
        {
            var cmd = new GetUserPlayHistoryCommand();

            Assert.AreEqual(3, cmd.BuildParams().Count, "Expected only startindex / itemsperpage at default values and target=track");

            cmd.Action = UserEventAction.Complete;

            Assert.AreEqual(4, cmd.BuildParams().Count, "Expected all 4 params set");
        }
        public void EnsureBuildParamsDoesNotSendUnknownFilters()
        {
            var cmd = new GetUserPlayHistoryCommand();

            Assert.AreEqual(3, cmd.BuildParams().Count, "Expected only startindex / itemsperpage at default values and target=track");

            cmd.Action = UserEventAction.Complete;

            Assert.AreEqual(4, cmd.BuildParams().Count, "Expected all 4 params set");
        }
        public void EnsureStockPropertiesAreCorrect()
        {
            var cmd = new GetUserPlayHistoryCommand();

            Assert.AreEqual(false, cmd.RequiresCountryCode, "Expected the right value");
            Assert.AreEqual(HttpMethod.Get, cmd.HttpMethod, "Expected the right value");
            Assert.AreEqual(UserEventTarget.Track, cmd.Target, "Expected the right value");
            
            StringBuilder sb = new StringBuilder();
            cmd.UserId = "USERID";
            cmd.AppendUriPath(sb);
            Assert.AreEqual("users/USERID/history/", sb.ToString(), "Expected the right value");
        }
        public void EnsureStockPropertiesAreCorrect()
        {
            var cmd = new GetUserPlayHistoryCommand();

            Assert.AreEqual(false, cmd.RequiresCountryCode, "Expected the right value");
            Assert.AreEqual(HttpMethod.Get, cmd.HttpMethod, "Expected the right value");
            Assert.AreEqual(UserEventTarget.Track, cmd.Target, "Expected the right value");

            StringBuilder sb = new StringBuilder();

            cmd.UserId = "USERID";
            cmd.AppendUriPath(sb);
            Assert.AreEqual("users/USERID/history/", sb.ToString(), "Expected the right value");
        }
        public async Task EnsureResponseParsedForValidRequest()
        {
            var cmd = new GetUserPlayHistoryCommand()
            {
                RequestHandler = new MockApiRequestHandler(FakeResponse.Success(Resources.usereventlist)),
                OAuth2         = new OAuth2(new FakeAuthHeaderProvider()),
                ClientSettings = new MockMusicClientSettings("test", "gb", null),
                UserId         = "userid"
            };

            var t = await cmd.ExecuteAsync(null);

            Assert.IsNotNull(t.Result, "Expected a result");
            Assert.Greater(t.Result.Count, 0, "Expected results");
            Assert.IsNull(t.Error, "Expected no errors");
        }
        public void EnsureResponseParsedForValidRequest()
        {
            var cmd = new GetUserPlayHistoryCommand()
            {
                RequestHandler = new MockApiRequestHandler(FakeResponse.Success(Resources.usereventlist)),
                OAuth2 = new OAuth2(new FakeAuthHeaderProvider()),
                ClientSettings = new MockMusicClientSettings("test", "gb", null),
                UserId = "userid"
            };

            var task = cmd.InvokeAsync();
            task.Wait();
            var t = task.Result;
            Assert.IsNotNull(t.Result, "Expected a result");
            Assert.Greater(t.Result.Count, 0, "Expected results");
            Assert.IsNull(t.Error, "Expected no errors");
        }
        public void EnsureActionEnumGetsConverted()
        {
            var cmd = new GetUserPlayHistoryCommand();

            // Test Unknown action
            cmd.Action = UserEventAction.Unknown;
            var parameters1 = cmd.BuildQueryStringParams();
            Assert.AreEqual(0, parameters1.Where(p => (string.Compare(p.Key, "action") == 0)).Count(), "Expected no action parameters");

            // Test one action
            cmd.Action = UserEventAction.Complete;
            var parameters2 = cmd.BuildQueryStringParams();
            Assert.AreEqual(1, parameters2.Where(p => (string.Compare(p.Key, "action") == 0)).Count(), "Expected one action parameter");

            // Test two actions
            cmd.Action = UserEventAction.Complete | UserEventAction.SkipNext;
            var parameters3 = cmd.BuildQueryStringParams();
            Assert.AreEqual(2, parameters3.Where(p => (string.Compare(p.Key, "action") == 0)).Count(), "Expected two action parameters");
        }
        public void EnsureActionEnumGetsConverted()
        {
            var cmd = new GetUserPlayHistoryCommand();

            // Test Unknown action
            cmd.Action = UserEventAction.Unknown;
            var parameters1 = cmd.BuildQueryStringParams();

            Assert.AreEqual(0, parameters1.Where(p => (string.Compare(p.Key, "action") == 0)).Count(), "Expected no action parameters");

            // Test one action
            cmd.Action = UserEventAction.Complete;
            var parameters2 = cmd.BuildQueryStringParams();

            Assert.AreEqual(1, parameters2.Where(p => (string.Compare(p.Key, "action") == 0)).Count(), "Expected one action parameter");

            // Test two actions
            cmd.Action = UserEventAction.Complete | UserEventAction.SkipNext;
            var parameters3 = cmd.BuildQueryStringParams();

            Assert.AreEqual(2, parameters3.Where(p => (string.Compare(p.Key, "action") == 0)).Count(), "Expected two action parameters");
        }
 public void EnsurePropertiesPersist()
 {
     var cmd = new GetUserPlayHistoryCommand();
     cmd.Action = UserEventAction.Complete;
     Assert.AreEqual(UserEventAction.Complete, cmd.Action, "Expected the right value");
 }
 public void EnsureAppendUriPathThrowsExceptionForNoUserId()
 {
     var cmd = new GetUserPlayHistoryCommand();
     StringBuilder sb = new StringBuilder();
     cmd.AppendUriPath(sb);
 }