Esempio n. 1
0
        public async Task HttpClientService_GetJsonGetAsync_InValid_Moq_Bad_Response_Should_Fail()
        {
            // Arrange

            var MockHttpClient = new HttpClient(new MockHttpMessageHandler());

            var RestUrl = "http://some.fake.url";

            var OldHttpClient = Service.GetHttpClient();

            Service.SetHttpClient(MockHttpClient);

            ResponseMessage.SetResponseMessageStringContent(ResponseMessage.NullStringContent);
            ResponseMessage.SetHttpStatusCode(ResponseMessage.HttpStatusCodeBadRequest);

            // Act
            var result = await Service.GetJsonGetAsync(RestUrl);


            // Parse them
            var resultList = ItemModelJsonHelper.ParseJson(result);

            // Reset
            Service.SetHttpClient(OldHttpClient);
            ResponseMessage.ResetResponseMessageStringContent();
            ResponseMessage.ResetHttpStatusCode();

            // Assert
            Assert.AreEqual(null, resultList);
        }
Esempio n. 2
0
        public async Task HttpClientService_GetJsonGetAsync_Valid_Moq_Should_Pass()
        {
            // Arrange

            var MockHttpClient = new HttpClient(new MockHttpMessageHandler());

            var RestUrl = "http://some.fake.url";

            var OldHttpClient = Service.GetHttpClient();

            Service.SetHttpClient(MockHttpClient);

            ResponseMessage.SetResponseMessageStringContent(ResponseMessage.GetStringContent);

            // Act
            var result = await Service.GetJsonGetAsync(RestUrl);

            // Parse them into ItemModels
            var resultList = ItemModelJsonHelper.ParseJson(result);

            // Reset
            Service.SetHttpClient(OldHttpClient);
            ResponseMessage.ResetResponseMessageStringContent();

            // Assert
            Assert.AreEqual(2, resultList.Count());
        }
Esempio n. 3
0
        public void ItemModelJsonHelper_ConvertFromJson_Valid_Should_Pass()
        {
            // Arrange

            JObject json = JObject.Parse(ItemJson);

            // Act
            var result = ItemModelJsonHelper.ConvertFromJson(json);

            // Reset

            // Assert
            Assert.AreEqual(10, result.Value);
            Assert.AreEqual(AttributeEnum.Attack, result.Attribute);
            Assert.AreEqual(ItemLocationEnum.OffHand, result.Location);
            Assert.AreEqual("Strong Shield", result.Name);
            Assert.AreEqual("3a138793-7411-7c60-6b03-aee9423d3684", result.Guid);
            Assert.AreEqual("Enough to hide behind", result.Description);
            Assert.AreEqual("http://www.clipartbest.com/cliparts/4T9/LaR/4T9LaReTE.png", result.ImageURI);
            Assert.AreEqual(0, result.Range);
            Assert.AreEqual(0, result.Damage);
            //Assert.AreEqual(-1, result.Count);
            //Assert.AreEqual(false, result.IsConsumable);
            //Assert.AreEqual(10, result.Category);
        }
Esempio n. 4
0
        // Asks the server for items based on paramaters
        // Number is th enumber of items to return
        // Level is the Value max for the items
        // Random is to have the value random between 1 and the Level
        // Attribute is a filter to return only items for that attribute, else unknown is used for any
        // Location is a filter to return only items for that location, else unknown is used for any
        public static async Task <List <ItemModel> > GetItemsFromServerPostAsync(int number, int level, AttributeEnum attribute, ItemLocationEnum location, int category, bool random, bool updateDataBase)
        {
            // Needs to get items from the server
            // Parse them
            // Then update the database
            // Only update fields on existing items
            // Insert new items
            // Then notify the viewmodel of the change

            // Needs to get items from the server

            var URLComponent = "GetItemListPost";

            var dict = new Dictionary <string, string>
            {
                { "Number", number.ToString() },
                { "Level", level.ToString() },
                { "Attribute", ((int)attribute).ToString() },
                { "Location", ((int)location).ToString() },
                { "Random", random.ToString() },
                { "Category", category.ToString() },
            };

            // Convert parameters to a key value pairs to a json object
            JObject finalContentJson = (JObject)JToken.FromObject(dict);

            // Make a call to the helper.  URL and Parameters
            var DataResult = await HttpClientService.Instance.GetJsonPostAsync(WebGlobalsModel.WebSiteAPIURL + URLComponent, finalContentJson);

            // Parse them
            var myList = ItemModelJsonHelper.ParseJson(DataResult);

            if (myList == null)
            {
                // Error, no results, return empty list.
                return(new List <ItemModel>());
            }

            // Then update the database

            // Use a foreach on myList
            if (updateDataBase)
            {
                foreach (var ItemModel in myList)
                {
                    // Call to the View Model (that is where the datasource is set, and have it then save
                    await ItemIndexViewModel.Instance.CreateUpdateAsync(ItemModel);
                }

                // When foreach is done, call to the items view model to set needs refresh to true, so it can refetch the list...
                ItemIndexViewModel.Instance.SetNeedsRefresh(true);
            }

            return(myList);
        }
Esempio n. 5
0
        public void ItemModelJsonHelper_ParseJson_InValid_ItemList_Empty_Should_Fail()
        {
            // Arrange

            // Act
            var result = ItemModelJsonHelper.ParseJson(ExampleJsonItemListEmpty);

            // Reset

            // Assert
            Assert.AreEqual(null, result);
        }
Esempio n. 6
0
        public void ItemModelJsonHelper_ParseJson_InValid_Field_Bogus_Should_Fail()
        {
            // Arrange

            // Act
            var result = ItemModelJsonHelper.ParseJson("bogus");

            // Reset

            // Assert
            Assert.AreEqual(null, result);
        }
Esempio n. 7
0
        public void ItemModelJsonHelper_ParseJson_Valid_Should_Pass()
        {
            // Arrange

            // Act
            var result = ItemModelJsonHelper.ParseJson(ExampleJson);

            // Reset

            // Assert
            Assert.AreEqual(4, result.Count());
        }
Esempio n. 8
0
        public void ItemModelJsonHelper_ConvertFromJson_InValid_Null_Should_Fail()
        {
            // Passing in null will get defaults for everything

            // Arrange

            // Act
            var result = ItemModelJsonHelper.ConvertFromJson(null);

            // Reset

            // Assert
            Assert.IsNotNull(result);
        }
Esempio n. 9
0
        public async Task HttpClientService_GetJsonPostAsync_InValid_Moq_Bad_Response_Should_Fail()
        {
            // Arrange

            var MockHttpClient = new HttpClient(new MockHttpMessageHandler());

            var RestUrl = "http://some.fake.url";

            var OldHttpClient = Service.GetHttpClient();

            Service.SetHttpClient(MockHttpClient);

            ResponseMessage.SetResponseMessageStringContent(ResponseMessage.NullStringContent);
            ResponseMessage.SetHttpStatusCode(ResponseMessage.HttpStatusCodeBadRequest);

            int              number    = 0;
            int              level     = 0;
            AttributeEnum    attribute = AttributeEnum.Attack;
            ItemLocationEnum location  = ItemLocationEnum.Feet;
            int              category  = 0;
            bool             random    = false;

            var dict = new Dictionary <string, string>
            {
                { "Number", number.ToString() },
                { "Level", level.ToString() },
                { "Attribute", ((int)attribute).ToString() },
                { "Location", ((int)location).ToString() },
                { "Random", random.ToString() },
                { "Category", category.ToString() },
            };

            // Convert parameters to a key value pairs to a json object
            JObject finalContentJson = (JObject)JToken.FromObject(dict);

            // Act
            var result = await Service.GetJsonPostAsync(RestUrl, finalContentJson);

            // Parse them
            var resultList = ItemModelJsonHelper.ParseJson(result);

            // Reset
            Service.SetHttpClient(OldHttpClient);
            ResponseMessage.ResetResponseMessageStringContent();
            ResponseMessage.ResetHttpStatusCode();

            // Assert
            Assert.AreEqual(null, resultList);
        }
Esempio n. 10
0
        public static async Task <List <ItemModel> > GetItemsFromServerGetAsync(int parameter = 100)
        {
            // parameter is the ItemModel group to request.  1, 2, 3, 100

            // Needs to get items from the server
            // Parse them
            // Then update the database
            // Only update fields on existing items
            // Insert new items
            // Then notify the viewmodel of the change

            // Needs to get items from the server

            var URLComponent = "GetItemList/";

            var DataResult = await HttpClientService.Instance.GetJsonGetAsync(WebGlobalsModel.WebSiteAPIURL + URLComponent + parameter);

            // Parse them
            var myList = ItemModelJsonHelper.ParseJson(DataResult);

            if (myList == null)
            {
                // Error, no results
                return(null);
            }

            // Then update the database

            // Use a foreach on myList
            foreach (var ItemModel in myList)
            {
                // Call to the View Model (that is where the datasource is set, and have it then save
                await ItemIndexViewModel.Instance.CreateUpdateAsync(ItemModel);
            }

            // When foreach is done, call to the items view model to set needs refresh to true, so it can refetch the list...
            ItemIndexViewModel.Instance.SetNeedsRefresh(true);

            return(myList);
        }
Esempio n. 11
0
        public async Task HttpClientService_ParseJsonResult_Valid_Should_Pass()
        {
            // Arrange

            var messageContent = ExampleJson;

            var responseMessage = new HttpResponseMessage(ResponseMessage.HttpStatusCode)
            {
                Content = new StringContent(messageContent)
            };

            // Act
            var result = await Service.JsonParseResult(responseMessage);

            // Parse them into ItemModels
            var resultList = ItemModelJsonHelper.ParseJson(result);

            // Reset

            // Assert
            Assert.AreEqual(4, resultList.Count());
        }