public void TestInitFull()
        {
            GeoLocationContext context = new GeoLocationContext()
                                         .SetLatitude(123.564)
                                         .SetLongitude(-12.6)
                                         .SetLatitudeLongitudeAccuracy(5.6)
                                         .SetAltitude(5.5)
                                         .SetAltitudeAccuracy(2.1)
                                         .SetBearing(3.2)
                                         .SetSpeed(100.2)
                                         .SetTimestamp(1234567890000)
                                         .Build();

            Assert.NotNull(context);

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

            Assert.AreEqual(8, dict.Count);
            Assert.AreEqual(123.564, dict [Constants.GEO_LAT]);
            Assert.AreEqual(-12.6, dict [Constants.GEO_LONG]);
            Assert.AreEqual(5.6, dict [Constants.GEO_LAT_LONG_ACC]);
            Assert.AreEqual(5.5, dict [Constants.GEO_ALT]);
            Assert.AreEqual(2.1, dict [Constants.GEO_ALT_ACC]);
            Assert.AreEqual(3.2, dict [Constants.GEO_BEARING]);
            Assert.AreEqual(100.2, dict [Constants.GEO_SPEED]);
            Assert.AreEqual(1234567890000, dict [Constants.GEO_TIMESTAMP]);

            Assert.AreEqual("iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0", context.GetSchema());
            Assert.AreEqual("{\"data\":{\"latitude\":123.564, \"latitudeLongitudeAccuracy\":5.6, \"altitudeAccuracy\":2.1, \"longitude\":-12.6, \"timestamp\":1234567890000, \"bearing\":3.2, \"speed\":100.2, \"altitude\":5.5}, \"schema\":\"iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0\"}", context.GetJson().ToString());
        }
        public void testInitGeoLocationContext()
        {
            var glc = new GeoLocationContext()
                      .SetLatitude(10.0)
                      .SetLongitude(-10.5)
                      .SetLatitudeLongitudeAccuracy(2564.734124)
                      .SetAltitude(300)
                      .SetAltitudeAccuracy(2)
                      .SetBearing(20.34)
                      .SetSpeed(0.0)
                      .SetTimestamp(123456789123)
                      .Build();

            Assert.IsNotNull(glc);
            Assert.AreEqual(@"{""schema"":""iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0"",""data"":{""latitude"":10.0,""longitude"":-10.5,""latitudeLongitudeAccuracy"":2564.734124,""altitude"":300.0,""altitudeAccuracy"":2.0,""bearing"":20.34,""speed"":0.0,""timestamp"":123456789123}}", glc.GetJson().ToString());
        }
        public void TestInitMinimal()
        {
            GeoLocationContext context = new GeoLocationContext().SetLatitude(123.564).SetLongitude(-12.6).Build();

            Assert.NotNull(context);

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

            Assert.AreEqual(2, dict.Count);
            Assert.AreEqual(123.564, dict [Constants.GEO_LAT]);
            Assert.AreEqual(-12.6, dict [Constants.GEO_LONG]);

            Assert.AreEqual("iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0", context.GetSchema());
            Assert.AreEqual("{\"data\":{\"latitude\":123.564, \"longitude\":-12.6}, \"schema\":\"iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0\"}", context.GetJson().ToString());
        }