public void TestInitFull()
        {
            MobileContext context = new MobileContext()
                                    .SetOsType("iOS")
                                    .SetOsVersion("9.0")
                                    .SetDeviceManufacturer("Apple")
                                    .SetDeviceModel("iPhone 6S+")
                                    .SetCarrier("FREE")
                                    .SetNetworkType(NetworkType.Mobile)
                                    .SetNetworkTechnology("LTE")
                                    .SetOpenIdfa("openidfa")
                                    .SetAppleIdfa("appleidfa")
                                    .SetAppleIdfv("appleidfv")
                                    .SetAndroidIdfa("androididfa")
                                    .Build();

            Assert.NotNull(context);

            Dictionary <string, object> dict = context.GetData();

            Assert.AreEqual(11, dict.Count);
            Assert.AreEqual("iOS", dict [Constants.PLAT_OS_TYPE]);
            Assert.AreEqual("9.0", dict [Constants.PLAT_OS_VERSION]);
            Assert.AreEqual("Apple", dict [Constants.PLAT_DEVICE_MANU]);
            Assert.AreEqual("iPhone 6S+", dict [Constants.PLAT_DEVICE_MODEL]);
            Assert.AreEqual("FREE", dict [Constants.MOBILE_CARRIER]);
            Assert.AreEqual("mobile", dict [Constants.MOBILE_NET_TYPE]);
            Assert.AreEqual("LTE", dict [Constants.MOBILE_NET_TECH]);
            Assert.AreEqual("openidfa", dict [Constants.MOBILE_OPEN_IDFA]);
            Assert.AreEqual("appleidfa", dict [Constants.MOBILE_APPLE_IDFA]);
            Assert.AreEqual("appleidfv", dict [Constants.MOBILE_APPLE_IDFV]);
            Assert.AreEqual("androididfa", dict [Constants.MOBILE_ANDROID_IDFA]);

            Assert.AreEqual("iglu:com.snowplowanalytics.snowplow/mobile_context/jsonschema/1-0-1", context.GetSchema());
            Assert.AreEqual("{\"data\":{\"deviceManufacturer\":\"Apple\", \"appleIdfa\":\"appleidfa\", \"networkTechnology\":\"LTE\", \"appleIdfv\":\"appleidfv\", \"deviceModel\":\"iPhone 6S+\", \"androidIdfa\":\"androididfa\", \"osVersion\":\"9.0\", \"carrier\":\"FREE\", \"osType\":\"iOS\", \"openIdfa\":\"openidfa\", \"networkType\":\"mobile\"}, \"schema\":\"iglu:com.snowplowanalytics.snowplow/mobile_context/jsonschema/1-0-1\"}", context.GetJson().ToString());
        }
        public void TestInitMinimal()
        {
            MobileContext context = new MobileContext().SetOsType("iOS").SetOsVersion("9.0").SetDeviceManufacturer("Apple").SetDeviceModel("iPhone 6S+").Build();

            Assert.NotNull(context);

            Dictionary <string, object> dict = context.GetData();

            Assert.AreEqual(4, dict.Count);
            Assert.AreEqual("iOS", dict [Constants.PLAT_OS_TYPE]);
            Assert.AreEqual("9.0", dict [Constants.PLAT_OS_VERSION]);
            Assert.AreEqual("Apple", dict [Constants.PLAT_DEVICE_MANU]);
            Assert.AreEqual("iPhone 6S+", dict [Constants.PLAT_DEVICE_MODEL]);

            Assert.AreEqual("iglu:com.snowplowanalytics.snowplow/mobile_context/jsonschema/1-0-1", context.GetSchema());
            Assert.AreEqual("{\"data\":{\"osVersion\":\"9.0\", \"deviceManufacturer\":\"Apple\", \"deviceModel\":\"iPhone 6S+\", \"osType\":\"iOS\"}, \"schema\":\"iglu:com.snowplowanalytics.snowplow/mobile_context/jsonschema/1-0-1\"}", context.GetJson().ToString());
        }