public void GET_AvailableSettings_AdminUser()
        {
            var getAvailableSettingsRequest =
                new HttpRequestMessage(HttpMethod.Get, "/api/AvailableSettings")
            {
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            var getAvailableSettingsResponse = this.client.SendAsync(getAvailableSettingsRequest).GetAwaiter().GetResult();

            Assert.AreEqual(getAvailableSettingsResponse.StatusCode, HttpStatusCode.OK);
            var     getContent = getAvailableSettingsResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            JObject getAvailableSettingsJson = JObject.Parse(getContent);

            Assert.Multiple(() =>
            {
                Assert.AreEqual("dd.MM.yyyy", getAvailableSettingsJson["dateFormats"][0]["description"].ToString());
                Assert.AreEqual("dd/MM/yyyy", getAvailableSettingsJson["dateFormats"][1]["description"].ToString());
                Assert.AreEqual("dd-MM-yyyy", getAvailableSettingsJson["dateFormats"][2]["description"].ToString());
                Assert.AreEqual("MM/dd/yyyy", getAvailableSettingsJson["dateFormats"][3]["description"].ToString());
                Assert.AreEqual("yyyy-MM-dd", getAvailableSettingsJson["dateFormats"][4]["description"].ToString());
                Assert.AreEqual("1", getAvailableSettingsJson["dateFormats"][0]["id"].ToString());
                Assert.AreEqual("2", getAvailableSettingsJson["dateFormats"][1]["id"].ToString());
                Assert.AreEqual("3", getAvailableSettingsJson["dateFormats"][2]["id"].ToString());
                Assert.AreEqual("4", getAvailableSettingsJson["dateFormats"][3]["id"].ToString());
                Assert.AreEqual("5", getAvailableSettingsJson["dateFormats"][4]["id"].ToString());
                Assert.AreEqual("1", getAvailableSettingsJson["languages"][0]["id"].ToString());
                Assert.AreEqual("Deutsch", getAvailableSettingsJson["languages"][0]["description"].ToString());
                Assert.AreEqual("2", getAvailableSettingsJson["languages"][1]["id"].ToString());
                Assert.AreEqual("English", getAvailableSettingsJson["languages"][1]["description"].ToString());
            });
        }
        public void Authorization_AdminUser()
        {
            var getSettings         = new HttpRequestMessage(HttpMethod.Get, "api/settings");
            var getSettingsResponse = this.client.SendAsync(getSettings).GetAwaiter().GetResult();

            Assert.AreEqual(getSettingsResponse.StatusCode, HttpStatusCode.Unauthorized);

            this.client = AuthorizationFactory.AdminUser(this.client);
            var getSettings2         = new HttpRequestMessage(HttpMethod.Get, "api/settings");
            var getSettingsResponse2 = this.client.SendAsync(getSettings2).GetAwaiter().GetResult();

            Assert.AreEqual(getSettingsResponse2.StatusCode, HttpStatusCode.OK);
        }
        public void GET_LinksNoSuchLanguage_AdminUser()
        {
            var getLanguageIDRequest =
                new HttpRequestMessage(HttpMethod.Get, "/api/Links?languageId=5")
            {
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            var getLanguageIDResponse = this.client.SendAsync(getLanguageIDRequest).GetAwaiter().GetResult();

            Assert.AreEqual(getLanguageIDResponse.StatusCode, HttpStatusCode.OK);
            var getContent = getLanguageIDResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult();

            Assert.AreEqual("[]", getContent);
        }
        public void GET_User_AdminUser()
        {
            var getUser =
                new HttpRequestMessage(HttpMethod.Get, "/api/User")
            {
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            var getUserResponse = this.client.SendAsync(getUser).GetAwaiter().GetResult();

            Assert.AreEqual(getUserResponse.StatusCode, HttpStatusCode.OK);
            var content = getUserResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult();

            Assert.AreEqual("\"Test Test\"", content);
        }
        public void GET_DefaultUserSettings_AdminUser()
        {
            var getSettings =
                new HttpRequestMessage(HttpMethod.Get, "/api/Settings")
            {
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            var getSettingsResponse = this.client.SendAsync(getSettings).GetAwaiter().GetResult();

            Assert.AreEqual(getSettingsResponse.StatusCode, HttpStatusCode.OK);
            var     content = getSettingsResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            JObject getSettingsResponceJson = JObject.Parse(content);

            Assert.AreEqual(getSettingsResponceJson["dateFormat"].ToString(), "1");
            Assert.AreEqual(getSettingsResponceJson["language"].ToString(), "1");
        }
        public void GET_EnglishLinks_AdminUser()
        {
            var getLanguageIDRequest =
                new HttpRequestMessage(HttpMethod.Get, "/api/Links?languageId=2")
            {
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            var getLanguageIDResponse = this.client.SendAsync(getLanguageIDRequest).GetAwaiter().GetResult();

            Assert.AreEqual(getLanguageIDResponse.StatusCode, HttpStatusCode.OK);
            var     getContent = getLanguageIDResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult().Replace("[", "").Replace("]", "").Trim();
            JObject getAvailableSettingsJson = JObject.Parse(getContent);

            Assert.AreEqual("/EventManagement/UserManagement", getAvailableSettingsJson["link"].ToString());
            Assert.AreEqual("UserManagement", getAvailableSettingsJson["title"].ToString());
        }
        public void Post_UserSettings_AdminUser()
        {
            var postJson            = "{\"language\":\"2\",\"dateFormat\":\"5\"}";
            var postSettingsRequest =
                new HttpRequestMessage(HttpMethod.Post, "/api/Settings")
            {
                Content = new StringContent(
                    postJson,
                    Encoding.UTF8,
                    "application/json")
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            var postSettingsResponse = this.client.SendAsync(postSettingsRequest).GetAwaiter().GetResult();

            Assert.AreEqual(postSettingsResponse.StatusCode, HttpStatusCode.OK);
            var     postContent      = postSettingsResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            JObject postSettingsJson = JObject.Parse(postContent);

            Assert.Multiple(() =>
            {
                Assert.AreEqual("5", postSettingsJson["dateFormat"].ToString());
                Assert.AreEqual("2", postSettingsJson["language"].ToString());
            });

            var getSettings =
                new HttpRequestMessage(HttpMethod.Get, "/api/Settings")
            {
            };
            //this.client = AuthorizationFactory.AdminUser(this.client);

            var getSettingsResponse = this.client.SendAsync(getSettings).GetAwaiter().GetResult();

            Assert.AreEqual(getSettingsResponse.StatusCode, HttpStatusCode.OK);
            var     getContent = getSettingsResponse.Content.ReadAsStringAsync().GetAwaiter().GetResult();
            JObject getSettingsResponceJson = JObject.Parse(getContent);

            Assert.Multiple(() =>
            {
                Assert.AreEqual("5", getSettingsResponceJson["dateFormat"].ToString());
                Assert.AreEqual("2", getSettingsResponceJson["language"].ToString());
            });
        }
        public void Post_EnterWrongValues_3_5_AdminUser()
        {
            var postJson            = "{\"dateFormat\":5,\"language\":3}";
            var postSettingsRequest =
                new HttpRequestMessage(HttpMethod.Post, "/api/Settings")
            {
                Content = new StringContent(
                    postJson,
                    Encoding.UTF8,
                    "application/json")
            };

            this.client = AuthorizationFactory.AdminUser(this.client);

            Assert.Throws <System.NullReferenceException>(() =>
            {
                this.client.SendAsync(postSettingsRequest).GetAwaiter().GetResult();
            });
        }