public void MapArrayCorrectType()
        {
            string json = AssemblyResourceReader.ReadAsString("Test_Data.States.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList();
            JToken mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, null);

            Assert.AreEqual(JTokenType.Array, mapped.Type);
        }
        public void MapArrayMaxResults()
        {
            const int max = 5;
            string json = AssemblyResourceReader.ReadAsString("Test_Data.States.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList
                                        {
                                            new MappedField
                                            {
                                                MapType = MapType.Content,
                                                Target = "Value",
                                                Source = "abbreviation"
                                            }
                                        };
            JArray mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, null, max) as JArray;

            Assert.AreEqual(max, mapped.Count);
        }
        public void MapArrayResultsToField()
        {
            string json = AssemblyResourceReader.ReadAsString("Test_Data.Errors.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList
                                        {
                                            new MappedField
                                            {
                                                MapType = MapType.Content,
                                                Target = "Test_field",
                                                Source = "Server_field"
                                            }
                                        };
            ApplicationData applicationData = new ApplicationData
                                              {
                                                  { "Test_field", null }
                                              };
            JObject mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, applicationData) as JObject;
            JToken first = mapped.First;

            Assert.AreEqual(2, first.Values().Count());
            Assert.AreEqual(2, applicationData.GetValue<string[]>("Test_field").Count());
        }
        public void MapArrayToRepeater()
        {
            string json = AssemblyResourceReader.ReadAsString("Test_Data.EmployeeList.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList
                                        {
                                            new MappedField
                                            {
                                                MapType = MapType.Content,
                                                Target = "Employees",
                                                Source = "employees"
                                            }
                                        };
            ApplicationData applicationData = new ApplicationData
                                              {
                                                  { "Employees", null }
                                              };
            JObject mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, applicationData) as JObject;

            NestedDictionary[] repeater = applicationData.GetValue<NestedDictionary[]>("Employees");
            Assert.AreEqual(3, repeater.Count());
            Assert.AreEqual("Josh", repeater[0]["Name"]);
            Assert.AreEqual("Heath", repeater[1]["Name"]);
            Assert.AreEqual("Nalvinder", repeater[2]["Name"]);
        }
        public void MapSingleStringToField()
        {
            string json = AssemblyResourceReader.ReadAsString("Test_Data.Single.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList
                                        {
                                            new MappedField
                                            {
                                                MapType = MapType.Content,
                                                Target = "Test_field",
                                                Source = "Server_field"
                                            }
                                        };
            ApplicationData applicationData = new ApplicationData
                                              {
                                                  { "Test_field", null }
                                              };
            JObject mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, applicationData) as JObject;

            Assert.AreEqual("This is a single response", applicationData.GetValue<string>("Test_field"));
        }
        public void MapArrayWithArrayDataToRepeater()
        {
            string json = AssemblyResourceReader.ReadAsString("Test_Data.EmployeeListWithCheckbox.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList
                                        {
                                            new MappedField
                                            {
                                                MapType = MapType.Content,
                                                Target = "Employees",
                                                Source = "employees"
                                            }
                                        };
            ApplicationData applicationData = new ApplicationData
                                              {
                                                  { "Employees", null }
                                              };
            JObject mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, applicationData) as JObject;

            NestedDictionary[] repeater = applicationData.GetValue<NestedDictionary[]>("Employees");
            Assert.AreEqual(3, repeater.Count());

            var employeeOneDetails = repeater[0]["Details"];
            Assert.AreEqual(3, ((string[])employeeOneDetails).Length);

            var employeeTwoDetails = repeater[1]["Details"];
            Assert.AreEqual(1, ((string[])employeeTwoDetails).Length);

            var employeeThreeDetails = repeater[2]["Details"];
            Assert.AreEqual(0, ((string[])employeeThreeDetails).Length);
        }
        public void MapArrayValue()
        {
            string json = AssemblyResourceReader.ReadAsString("Test_Data.States.json");
            JToken token = JToken.Parse(json);
            MappedFieldList fieldList = new MappedFieldList
                                        {
                                            new MappedField
                                            {
                                                MapType = MapType.Content,
                                                Target = "Value",
                                                Source = "abbreviation"
                                            }
                                        };
            JArray mapped = new HttpEndpointResponseMapper().MapToken(token, null, fieldList, null) as JArray;
            JObject first = mapped.First as JObject;

            Assert.AreEqual("ACT", first.Value<string>("Value"));
        }