示例#1
0
        public void RegisterLuaScript_GetsClient()
        {
            var clientManager = A.Fake <IRedisClientsManager>();

            LuaScriptHelpers.RegisterLuaScript(clientManager);

            A.CallTo(() => clientManager.GetClient()).MustHaveHappened();
        }
示例#2
0
        public void RegisterLuaScript_ReturnsSha1(string sha1)
        {
            var clientManager = A.Fake <IRedisClientsManager>();
            var client        = A.Fake <IRedisClient>();

            A.CallTo(() => clientManager.GetClient()).Returns(client);
            A.CallTo(() => client.LoadLuaScript(A <string> .Ignored)).Returns(sha1);

            var result = LuaScriptHelpers.RegisterLuaScript(clientManager);

            result.Should().Be(sha1);
        }
示例#3
0
        public void RegisterLuaScript_LoadsScript()
        {
            var clientManager = A.Fake <IRedisClientsManager>();
            var client        = A.Fake <IRedisClient>();

            A.CallTo(() => clientManager.GetClient()).Returns(client);

            var resourceScript = LuaScriptHelpers.GetLuaScript();

            LuaScriptHelpers.RegisterLuaScript(clientManager);

            A.CallTo(() => client.LoadLuaScript(resourceScript)).MustHaveHappened();
        }
示例#4
0
        private string GetSha1()
        {
            var scriptFromConfig = LimitProvider.GetRateLimitScriptId();

            if (!string.IsNullOrWhiteSpace(scriptFromConfig))
            {
                log.Debug($"Got Lua script sha1 {scriptFromConfig} from config");
                return(scriptFromConfig);
            }

            if (string.IsNullOrEmpty(scriptSha1))
            {
                log.Info("Registering Lua rate limiting script");
                scriptSha1 = LuaScriptHelpers.RegisterLuaScript(redisClientsManager);
            }
            return(scriptSha1);
        }
示例#5
0
        public void GetLuaScript_ReturnsScript()
        {
            var script = LuaScriptHelpers.GetLuaScript();

            script.Should().NotBeNullOrWhiteSpace();
        }