public void TestSendingSingleFullyPopulatedLookup()
        {
            var expectedUrl = "http://localhost/?country=0&geocode=true&language=native&freeform=1" +
                              "&address1=2&address2=3&address3=4&address4=5&organization=6&locality=7&administrative_area=8&postal_code=9";
            var serializer = new FakeSerializer(null);
            var client     = new Client(sender, serializer);
            var lookup     = new Lookup
            {
                Country            = "0",
                Geocode            = true,
                Language           = LanguageMode.NATIVE,
                Freeform           = "1",
                Address1           = "2",
                Address2           = "3",
                Address3           = "4",
                Address4           = "5",
                Organization       = "6",
                Locality           = "7",
                AdministrativeArea = "8",
                PostalCode         = "9"
            };

            client.Send(lookup);

            Assert.AreEqual(expectedUrl, capturingSender.Request.GetUrl());
        }
        public void TestRejectNullLookup()
        {
            var serializer = new FakeSerializer(null);
            var client     = new Client(this.urlSender, serializer);

            Assert.ThrowsAsync <ArgumentNullException>(async() => await client.SendAsync(null));
        }
        public void TestSendingSingleFullyPopulatedLookup()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client(sender, serializer);
            var lookup     = new Lookup
            {
                InputId       = "1234",
                Addressee     = "0",
                Street        = "1",
                Secondary     = "2",
                Street2       = "3",
                Urbanization  = "4",
                City          = "5",
                State         = "6",
                ZipCode       = "7",
                Lastline      = "8",
                MaxCandidates = 9,
                MatchStrategy = "10"
            };

            client.Send(lookup);

            Assert.AreEqual("?input_id=1234&street=1&street2=3&secondary=2&city=5&state=6&zipcode=7&" +
                            "lastline=8&addressee=0&urbanization=4&match=10&candidates=9", sender.Request.GetUrl());
        }
        public void TestRejectEmptyPrefix()
        {
            var serializer = new FakeSerializer(null);
            var client     = new Client(this.urlSender, serializer);

            Assert.ThrowsAsync <SmartyException>(async() => await client.SendAsync(new Lookup("")));
        }
        public void WhenDeserializingEmptyByteArray_ThenReturnsDefaultOfT()
        {
            var serializer = new FakeSerializer();
            var result     = serializer.Deserialize <Data>(new byte[0]);

            Assert.Null(result);
        }
        public void TestRejectNullPrefix()
        {
            var serializer = new FakeSerializer(null);
            var client     = new Client(this.urlSender, serializer);

            Assert.Throws <SmartyException>(() => client.Send(new Lookup()));
        }
Example #7
0
 internal void Write(IGrainState grainState, FakeSerializer serializer = null)
 {
     lock (_sync) {
         ETag    = grainState.ETag;
         Data    = (serializer ?? _serializer).Serialize(grainState.State);
         IsEmpty = false;
     }
 }
        public void WhenDeserializing_ThenInvokesSerializer()
        {
            var data       = new Data();
            var serializer = new FakeSerializer(data);
            var result     = serializer.Deserialize <Data>(new byte[] { 25, 20 });

            Assert.Same(data, result);
        }
Example #9
0
 public void Update(object state, string etag = null, FakeSerializer serializer = null)
 {
     lock (_sync) {
         Data    = (serializer ?? _serializer).Serialize(state);
         ETag    = etag;
         IsEmpty = false;
     }
 }
        public void TestSendingSinglePrefixOnlyLookup()
        {
            var serializer = new FakeSerializer(new byte[0]);
            var client     = new Client(this.urlSender, serializer);

            client.Send(new Lookup("1"));

            Assert.AreEqual("http://localhost/?prefix=1&geolocate=true&geolocate_precision=city", capturingSender.Request.GetUrl());
        }
        public void WhenSerializing_ThenInvokesSerializer()
        {
            var serializer = new FakeSerializer();
            var data       = new Data();

            serializer.Serialize(data);

            Assert.Same(data, serializer.Data);
        }
Example #12
0
        public void TestSendingLookup()
        {
            var serializer = new FakeSerializer(null);
            var client     = new Client(this.sender, serializer);
            var lookup     = new Lookup(44.888888888, -111.111111111);

            client.Send(lookup);

            Assert.AreEqual("http://localhost/?latitude=44.88888889&longitude=-111.11111111", this.capturingSender.Request.GetUrl());
        }
Example #13
0
        public async Task TestSendingSingleZipOnlyLookupAsync()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client("http://localhost/", sender, serializer);

            await client.SendAsync(new Lookup("1"));

            Assert.AreEqual("http://localhost/?zipcode=1", sender.Request.GetUrl());
        }
Example #14
0
        public async Task TestSendingSingleFreeformLookupAsync()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client("http://localhost/", sender, serializer);

            await client.SendAsync(new Lookup("freeform"));

            Assert.AreEqual("http://localhost/?street=freeform", sender.Request.GetUrl());
        }
        public void TestSendingFreeformLookup()
        {
            var serializer = new FakeSerializer(null);
            var client     = new Client(this.sender, serializer);
            var lookup     = new Lookup("freeform", "USA");

            client.Send(lookup);

            Assert.AreEqual("http://localhost/?country=USA&freeform=freeform", capturingSender.Request.GetUrl());
        }
Example #16
0
 internal void Read(IGrainState grainState, FakeSerializer serializer = null)
 {
     lock (_sync) {
         if (!IsEmpty)
         {
             grainState.ETag  = ETag;
             grainState.State = (serializer ?? _serializer).Deserialize(Data);
         }
     }
 }
        public void TestSendingSingleZipOnlyLookup()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client(sender, serializer);

            client.Send(new Lookup("1"));

            Assert.AreEqual("?zipcode=1", sender.Request.GetUrl());
        }
Example #18
0
        public void TestContentTypeSetCorrectly()
        {
            var serializer = new FakeSerializer(null);
            var client     = new Client(this.urlSender, serializer);
            var lookup     = new Lookup("Hello, World!");

            client.Send(lookup);

            Assert.AreEqual("text/plain", this.capturingSender.Request.ContentType);
        }
        public void TestSendingSingleFreeformLookup()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client(sender, serializer);

            client.Send(new Lookup("freeform"));

            Assert.AreEqual("?street=freeform", sender.Request.GetUrl());
        }
        public void MultipleDeserializersWithSameContentTypeShouldThrowException()
        {
            var deserializer1 = new FakeSerializer("my/content/type");
            var deserializer2 = new FakeSerializer("my/content/type");

            Assert.That(() => new MessageDeserializerResolver(new FakeSerializer("xml"), new IMessageSerializer[]
            {
                deserializer1,
                deserializer2
            }), Throws.Exception.TypeOf<Exception>().And.Message.Contains($"Multiple deserializers are registered for content-type '{deserializer1.ContentType}'. Remove ambiguous deserializers."));
        }
        public void MultipleDeserializersWithSameContentTypeShouldThrowException()
        {
            var deserializer1 = new FakeSerializer("my/content/type");
            var deserializer2 = new FakeSerializer("my/content/type");

            Assert.That(() => new MessageDeserializerResolver(new FakeSerializer("xml"), new IMessageSerializer[]
            {
                deserializer1,
                deserializer2
            }), Throws.Exception.TypeOf <Exception>().And.Message.Contains($"Multiple deserializers are registered for content-type '{deserializer1.ContentType}'. Remove ambiguous deserializers."));
        }
Example #22
0
        public void TestEmptyBatchNotSent()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client("http://localhost/", sender, serializer);

            var batch = new Batch();

            client.Send(batch);

            Assert.Null(sender.Request);
        }
        public async Task TestEmptyBatchNotSentAsync()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client(sender, serializer);

            var batch = new Batch();

            await client.SendAsync(batch);

            Assert.Null(sender.Request);
        }
Example #24
0
        public void TestSendingBodyOnlyLookup()
        {
            var          serializer      = new FakeSerializer(null);
            var          client          = new Client(this.urlSender, serializer);
            const string expectedUrl     = "http://localhost/?aggressive=false&addr_line_breaks=true&addr_per_line=0";
            var          expectedPayload = Encoding.ASCII.GetBytes("Hello, World!");

            client.Send(new Lookup("Hello, World!"));

            Assert.AreEqual(expectedUrl, capturingSender.Request.GetUrl());
            Assert.AreEqual(expectedPayload, capturingSender.Request.Payload);
        }
        public void NoContentTypeFallsBackToDefaultSerialization()
        {
            var defaultSerializer = new FakeSerializer(ContentTypes.Xml);
            var resolver          = new MessageDeserializerResolver(defaultSerializer, new IMessageSerializer[]
            {
                new FakeSerializer(ContentTypes.Json)
            });

            var serializer = resolver.Resolve(new Dictionary <string, string>());

            Assert.AreEqual(defaultSerializer, serializer);
        }
        public void NoContentTypeFallsBackToDefaultSerialization()
        {
            var defaultSerializer = new FakeSerializer(ContentTypes.Xml);
            var resolver = new MessageDeserializerResolver(defaultSerializer, new IMessageSerializer[]
            {
                new FakeSerializer(ContentTypes.Json)
            });

            var serializer = resolver.Resolve(new Dictionary<string, string>());

            Assert.AreEqual(defaultSerializer, serializer);
        }
Example #27
0
        public async Task TestSuccessfullySendsBatchOfLookupsAsync()
        {
            var sender          = new RequestCapturingSender();
            var expectedPayload = Encoding.ASCII.GetBytes("Hello, world!");
            var serializer      = new FakeSerializer(expectedPayload);
            var client          = new Client("http://localhost/", sender, serializer);
            var batch           = new Batch {
                new Lookup(), new Lookup()
            };

            await client.SendAsync(batch);

            Assert.AreEqual(expectedPayload, sender.Request.Payload);
        }
        public void TestSuccessfullySendsBatchOfAddressLookups()
        {
            var sender          = new RequestCapturingSender();
            var expectedPayload = Encoding.ASCII.GetBytes("Hello World!");
            var serializer      = new FakeSerializer(expectedPayload);
            var client          = new Client(sender, serializer);
            var batch           = new Batch {
                new Lookup(), new Lookup()
            };

            client.Send(batch);

            Assert.AreEqual(expectedPayload, sender.Request.Payload);
        }
Example #29
0
        public async Task TestSendingSingleFullyPopulatedLookupAsync()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client("http://localhost/", sender, serializer);
            var lookup     = new Lookup();

            lookup.City    = "1";
            lookup.State   = "2";
            lookup.ZipCode = "3";

            await client.SendAsync(lookup);

            Assert.AreEqual("http://localhost/?city=1&state=2&zipcode=3", sender.Request.GetUrl());
        }
Example #30
0
        public Activation_New(Fixture fx, Placement placement)
        {
            _fx         = fx;
            _placement  = placement;
            _serializer = fx.Serializer;
            _scheduler  = new GrainTaskScheduler(fx.Scheduler, fx.Exceptions);
            _runner     = new RequestRunner(_scheduler, fx.Exceptions, fx.Requests, true); //default isolation???
            _timers     = new MockTimerRegistry(_scheduler);
            _receivers  = new StreamReceiverRegistry(_serializer);
            _storage    = fx.Stores.GetStorage(placement);
            _reminders  = fx.Reminders.GetRegistry(placement);

            Placement  = placement;
            Dispatcher = new ActivationDispatcher(_runner, CreateGrainContext);
        }
        public void TestSendingSingleFullyPopulatedLookup()
        {
            var sender     = new RequestCapturingSender();
            var serializer = new FakeSerializer(null);
            var client     = new Client(sender, serializer);
            var lookup     = new Lookup
            {
                City    = "1",
                State   = "2",
                ZipCode = "3"
            };

            client.Send(lookup);

            Assert.AreEqual("?city=1&state=2&zipcode=3", sender.Request.GetUrl());
        }
        public void UnknownContentTypeFallsBackToDefaultSerialization()
        {
            var defaultSerializer = new FakeSerializer(ContentTypes.Xml);
            var resolver = new MessageDeserializerResolver(defaultSerializer, new IMessageSerializer[]
            {
                new FakeSerializer(ContentTypes.Json)
            });

            var headers = new Dictionary<string, string>
            {
                {Headers.ContentType, "unknown/unsupported"}
            };
            var serializer = resolver.Resolve(headers);

            Assert.AreSame(defaultSerializer, serializer);
        }
Example #33
0
        public void TestSendingFullyPopulatedLookup()
        {
            var          serializer  = new FakeSerializer(null);
            var          client      = new Client(this.urlSender, serializer);
            const string expectedUrl = "http://localhost/?html=true&aggressive=true&addr_line_breaks=false&addr_per_line=2";
            var          lookup      = new Lookup("1");

            lookup.SpecifyHtmlInput(true);
            lookup.IsAggressive            = true;
            lookup.AddressesHaveLineBreaks = false;
            lookup.AddressesPerLine        = 2;

            client.Send(lookup);

            Assert.AreEqual(expectedUrl, capturingSender.Request.GetUrl());
        }
        public void RetrievesSerializerByContentType(string contentType)
        {
            var expectedResolver = new FakeSerializer(contentType);
            var resolver = new MessageDeserializerResolver(new FakeSerializer("default"), new IMessageSerializer[]
            {
                new FakeSerializer("some/content/type"),
                expectedResolver,
                new FakeSerializer("another/content/type")
            });

            var headers = new Dictionary<string, string>
            {
                {Headers.ContentType, contentType}
            };
            var serializer = resolver.Resolve(headers);
            Assert.AreSame(expectedResolver, serializer);
        }
        public void CreateStructures_WhenSerializerIsSpecified_SerializerIsConsumed()
        {
            var schema = StructureSchemaTestFactory.CreateRealFrom<GuidItem>();
            var serializer = new FakeSerializer
            {
                OnSerialize = (i, s) =>
                {
                    var itm = (GuidItem)i;
                    return itm.StructureId + ";" + itm.Value;
                }
            };
            var items = CreateGuidItems(3).ToArray();

            Builder.StructureSerializer = serializer;
            var structures = Builder.CreateStructures(items, schema).ToList();

            Assert.AreEqual(3, structures.Count);
            Assert.AreEqual(items[0].StructureId + ";" + items[0].Value, structures[0].Data);
            Assert.AreEqual(items[1].StructureId + ";" + items[1].Value, structures[1].Data);
            Assert.AreEqual(items[2].StructureId + ";" + items[2].Value, structures[2].Data);
        }