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); }
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); }