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); }
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()); }
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); }
// 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); }
public void ItemModelJsonHelper_ParseJson_InValid_ItemList_Empty_Should_Fail() { // Arrange // Act var result = ItemModelJsonHelper.ParseJson(ExampleJsonItemListEmpty); // Reset // Assert Assert.AreEqual(null, result); }
public void ItemModelJsonHelper_ParseJson_InValid_Field_Bogus_Should_Fail() { // Arrange // Act var result = ItemModelJsonHelper.ParseJson("bogus"); // Reset // Assert Assert.AreEqual(null, result); }
public void ItemModelJsonHelper_ParseJson_Valid_Should_Pass() { // Arrange // Act var result = ItemModelJsonHelper.ParseJson(ExampleJson); // Reset // Assert Assert.AreEqual(4, result.Count()); }
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); }
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); }
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); }
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()); }