public void Test_Set_Same_Key_Twice() { var value = new SimpleVocValue() { Data = "Test Data", Key = "TestKey" }; var result = _simpleVoc.Set(value); var result2 = _simpleVoc.Set(value); }
public void Test_Set_With_Empty_Key() { var value = new SimpleVocValue(); _simpleVoc.Set(value); }
public void Test_Set_And_Get() { var expires = DateTime.Now.AddDays(1); var testData = new SimpleVocValue() { Key = "TestGetKey", Data = "♥ Some random Data ♥", Flags = 123, Expires = expires }; _simpleVoc.Set(testData); var result = _simpleVoc.Get(testData.Key); Assert.AreEqual(testData.Key, result.Key); Assert.AreEqual(testData.Data, result.Data); Assert.AreEqual(testData.Flags, result.Flags); Assert.AreEqual(testData.Expires.ToString(), result.Expires.ToString()); }
public void Test_SetAsync_And_GetAsync() { var expires = DateTime.Now.AddDays(1); var testData = new SimpleVocValue() { Key = "TestGetKey", Data = "♥ Some random Data ♥", Flags = 123, Expires = expires }; // Calling wait here to wait on finishing the Task _simpleVoc.SetAsync(testData).Wait(); var result = _simpleVoc.GetAsync(testData.Key); Assert.AreEqual(testData.Key, result.Result.Key); Assert.AreEqual(testData.Data, result.Result.Data); Assert.AreEqual(testData.Flags, result.Result.Flags); Assert.AreEqual(testData.Expires.ToString(), result.Result.Expires.ToString()); }
public void Test_Set() { var value = new SimpleVocValue() { Data = "Test Data", Key = "TestKey" }; var result = _simpleVoc.Set(value); Assert.IsTrue(result, "Result for setting a value should be true."); }
/// <summary> /// Create a HttpWebRequest for a SET (POST) operation with given value. /// </summary> /// <param name="value"></param> /// <returns></returns> private HttpWebRequest CreateRequestForSet(SimpleVocValue value) { if (string.IsNullOrWhiteSpace(value.Key)) { throw new ArgumentException("Key can't be empty!"); } var req = CreateRequest("value/" + value.Key); req.Method = "POST"; // Set uses "POST" req.Headers.Add("x-voc-flags", value.Flags.ToString()); if (value.Extended != null) { req.Headers.Add("x-voc-extended", _serializer.Serialize(value.Extended)); } // Set expires header if given if (value.Expires != DateTime.MinValue) { // Convert to ISO 8601 req.Headers.Add("x-voc-expires", value.Expires.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")); } return req; }
/// <summary> /// Asynchronously save a SimpleVoc value on a SimpleVoc server. /// </summary> /// <param name="value">The SimpleVoc value to save.</param> /// <returns>true on success</returns> public async Task<bool> SetAsync(SimpleVocValue value) { var req = CreateRequestForSet(value); try { using (var reqStream = await req.GetRequestStreamAsync()) { // Convert string to bytes if (value.Data != null) { byte[] dataToWrite = Encoding.UTF8.GetBytes(value.Data); await reqStream.WriteAsync(dataToWrite, 0, dataToWrite.Length); } // If an error occurs a WebException is thrown var res = (HttpWebResponse) await req.GetResponseAsync(); res.Close(); } } catch (WebException ex) { throw ConvertToSimpleVocException(ex); } return true; }