public void Specifying_too_few_arguments_will_result_in_error() { var stream = new MemoryStream(); var cmd = new IncrCommand(); cmd.SetContext(stream); cmd.Init("a"); Assert.AreEqual("CLIENT_ERROR Expected to get 'incr <key> <values> [noreply]'\r\n", ReadAll(stream)); }
public void Specifying_non_numeric_value_will_result_in_error() { var stream = new MemoryStream(); var cmd = new IncrCommand(); cmd.SetContext(stream); cmd.Init("a", "x1", "noreply"); Assert.AreEqual("CLIENT_ERROR Value should be a numeric value\r\n", ReadAll(stream)); }
public void Will_parse_values_from_command_args_without_noreply() { var stream = new MemoryStream(); var cmd = new IncrCommand(); cmd.SetContext(stream); cmd.Init("a", "1"); Assert.AreEqual("a", cmd.Key); Assert.AreEqual(1UL, cmd.Value); Assert.IsFalse(cmd.NoReply); }
public void When_incrementing_value_no_on_cache_will_return_not_found() { var stream = new MemoryStream(); var command = new IncrCommand(); command.SetContext(stream); command.Init("foo", "1"); command.FinishedExecuting += () => { wait.Set(); }; command.Execute(); wait.WaitOne(); Assert.AreEqual("NOT_FOUND\r\n", ReadAll(stream)); }
public void When_incrementing_value_on_cache_which_is_in_invalid_format_assumes_it_is_zero() { Cache["foo"] = new CachedItem {Buffer = new byte[] {1}}; var stream = new MemoryStream(); var command = new IncrCommand(); command.SetContext(stream); command.Init("foo", "5"); command.FinishedExecuting += () => { wait.Set(); }; command.Execute(); wait.WaitOne(); Assert.AreEqual("5\r\n", ReadAll(stream)); }
public void When_incrementing_value_on_cache_which_is_in_invalid_format_assumes_it_is_zero() { Cache["foo"] = new CachedItem { Buffer = new byte[] { 1 } }; var stream = new MemoryStream(); var command = new IncrCommand(); command.SetContext(stream); command.Init("foo", "5"); command.FinishedExecuting += () => { wait.Set(); }; command.Execute(); wait.WaitOne(); Assert.AreEqual("5\r\n", ReadAll(stream)); }
public void When_incrementing_value_on_cache_which_is_in_valid_format_use_this_as_base() { Cache["foo"] = new CachedItem { Buffer = Encoding.ASCII.GetBytes("12") }; var stream = new MemoryStream(); var command = new IncrCommand(); command.SetContext(stream); command.Init("foo", "5"); command.FinishedExecuting += () => { wait.Set(); }; command.Execute(); wait.WaitOne(); Assert.AreEqual("17\r\n", ReadAll(stream)); wait.Reset(); command.FinishedExecuting += () => { wait.Set(); }; command.Execute(); wait.WaitOne(); Assert.AreEqual("22\r\n", ReadAll(4, stream)); }
public void Will_parse_values_from_command_args_with_no_reply() { var stream = new MemoryStream(); var cmd = new IncrCommand(); cmd.SetContext(stream); cmd.Init("a", "1", "noreply"); Assert.AreEqual("a", cmd.Key); Assert.AreEqual(1UL, cmd.Value); Assert.IsTrue(cmd.NoReply); }