示例#1
0
        async public Task ChangeInContextFiresRequestToEdgeService()
        {
            var edgeStub = new EdgeServiceStub();
            var ctx      = await new ServerEvalFeatureContext(_repository, null, (repo, config) => edgeStub)
                           .Attr("city", "Istanbul City")
                           .Attrs("family", new List <String> {
                "Bambam", "DJ Elif"
            })
                           .Country(StrategyAttributeCountryName.Turkey)
                           .Platform(StrategyAttributePlatformName.Ios)
                           .Device(StrategyAttributeDeviceName.Mobile)
                           .UserKey("tv-show")
                           .Version("6.2.3")
                           .SessionKey("session-key")
                           .Build();

            Assert.AreEqual(_repository, ctx.Repository);
            Assert.AreEqual("Istanbul City", ctx.GetAttr("city", "here"));
            Assert.AreEqual("here", ctx.GetAttr("city-scape", "here"));

            Assert.AreEqual(
                "city=Istanbul+City,country=turkey,device=mobile,family=Bambam%2cDJ+Elif,platform=ios,session=session-key,userkey=tv-show,version=6.2.3", edgeStub.header);

            Assert.NotNull(ctx.ToString());

            Assert.NotNull(ctx["fred"]);
            Assert.AreEqual(edgeStub, ctx.EdgeService);

            await ctx.Clear().Build();

            Assert.AreEqual("", edgeStub.header);
        }
示例#2
0
        async public Task EnsureStubIsReplacedOnBuildForServerEval()
        {
            var edgeStub = new EdgeServiceStub();

            edgeStub.replace = true;
            var ctx = await new ServerEvalFeatureContext(_repository, null, (repo, config) => edgeStub).Build();

            Assert.AreEqual(0, edgeStub.closeCalled);
            ctx.Attr("replaceme", "now");
            await ctx.Build();

            Assert.AreEqual(1, edgeStub.closeCalled);
        }