public async Task ExtractsHttpContext()
        {
            string expUserId    = "u-id",
                   expClientId  = "c-Id",
                   expSessionId = "s-id",
                   expRefId     = "r-id";
            var hd = new HeaderDictionary
            {
                { HttpHeaderNames.ClientSessionId, expSessionId },
                { HttpHeaderNames.ClientRequestReference, expRefId },
            };

            var user = new ClaimsPrincipal(new ClaimsIdentity(new[] {
                new Claim(ClaimTypes.NameIdentifier, expUserId),
                new Claim("client_id", expClientId),
            }));
            var ctx = new Mock <HttpContext>();
            var req = new Mock <HttpRequest>();

            req.Setup(r => r.Path).Returns(new PathString("/do/123"));
            req.Setup(r => r.Method).Returns("get");
            req.SetupGet(r => r.Headers).Returns(hd);
            var response = new Mock <HttpResponse>();

            ctx.Setup(h => h.User).Returns(user);
            ctx.Setup(h => h.Request).Returns(req.Object);

            var mw = new WorkContextMiddleware_ForTests(new EntityConfigRecord[] { });

            var wc  = new WorkContext();
            var res = await mw.ExtractHttpContext(ctx.Object, wc);

            res.ShouldBeTrue();

            wc.CurrentUserId.ShouldBe(expUserId);
            wc.CurrentClientId.ShouldBe(expClientId);
            wc.SessionId.ShouldBe(expSessionId);
            wc.ReferenceId.ShouldBe(expRefId);
        }
        public void BuildDisabledMethodMap()
        {
            var e = new EntityConfigRecord
            {
                Name             = "name",
                EndpointSettings = new EndpointSettings
                {
                    GetSettings = new EndpointMethodSettings {
                        Disabled = true
                    },
                    PutSettings = new EndpointMethodSettings {
                        Disabled = true
                    },
                }
            };
            var wcmt = new WorkContextMiddleware_ForTests(new[] { e });

            wcmt.ActiveMap[$"{e.Name}_post"].ShouldBeFalse();
            wcmt.ActiveMap[$"{e.Name}_get"].ShouldBeTrue();
            wcmt.ActiveMap[$"{e.Name}_put"].ShouldBeTrue();
            wcmt.ActiveMap[$"{e.Name}_delete"].ShouldBeFalse();
        }