Ejemplo n.º 1
0
        public void SetExTest()
        {
            var key   = $"{nameof(SetExTest)}Key";
            var value = $"{nameof(SetExTest)}Value";

            string result;

            result = _client.SetEx(key, value, 10);
            Assert.AreEqual("OK", result);

            Thread.Sleep(TimeSpan.FromSeconds(10));

            result = _client.Get(key);
            Assert.AreEqual("nil", result);
        }
        public object Execute(string[] args)
        {
            if (args.Length < 3)
            {
                throw new ArgumentException("(error) wrong number of arguments");
            }

            object result;

            var key   = args[1];
            var value = args[2];

            if (args.Length == 3)
            {
                result = _client.Set(key, value);
            }
            else if (args.Length == 5)
            {
                var ex = args[3];
                if (ex.ToUpperInvariant() != "EX")
                {
                    throw new ArgumentException("(error) ERR Syntax error");
                }

                var seconds = args[4];
                if (string.IsNullOrWhiteSpace(seconds))
                {
                    throw new ArgumentException("(error) ERR Syntax error");
                }

                Func <string, int?> ToInt = (string input) => Convert.ToInt32(input);

                var secondsResult = ToInt.SafeExecution(args[4]);
                if (!secondsResult.HasValue)
                {
                    throw new ArgumentException("(error) ERR value is not an integer or out of range");
                }

                result = _client.SetEx(key, value, secondsResult.Value);
            }
            else
            {
                throw new ArgumentException("(error) wrong number of arguments");
            }

            return(result);
        }