public void PutGetDeleteIdenticalStructOrNative() { var testStruct = new MyStruct { IntegerValue = 12, StringValue = "hello" }; for (var i = 0; i < 10; i++) { this.QueueStorage.Put(this.QueueName, testStruct); } var outStruct1 = this.QueueStorage.Get<MyStruct>(this.QueueName, 1).First(); var outStruct2 = this.QueueStorage.Get<MyStruct>(this.QueueName, 1).First(); Assert.IsTrue(this.QueueStorage.Delete(outStruct1), "1st Delete failed"); Assert.IsTrue(this.QueueStorage.Delete(outStruct2), "2nd Delete failed"); Assert.IsFalse(this.QueueStorage.Delete(outStruct2), "3nd Delete succeeded"); var outAllStructs = this.QueueStorage.Get<MyStruct>(this.QueueName, 20); Assert.AreEqual(8, outAllStructs.Count(), "Wrong queue item count"); foreach (var str in outAllStructs) { Assert.AreEqual(testStruct.IntegerValue, str.IntegerValue, "Wrong integer value"); Assert.AreEqual(testStruct.StringValue, str.StringValue, "Wrong string value"); Assert.IsTrue(this.QueueStorage.Delete(str), "Delete failed"); } const double TestDouble = 3.6D; for (var i = 0; i < 10; i++) { this.QueueStorage.Put(this.QueueName, TestDouble); } var outDouble1 = this.QueueStorage.Get<double>(this.QueueName, 1).First(); var outDouble2 = this.QueueStorage.Get<double>(this.QueueName, 1).First(); var outDouble3 = this.QueueStorage.Get<double>(this.QueueName, 1).First(); Assert.IsTrue(this.QueueStorage.Delete(outDouble1), "1st Delete failed"); Assert.IsTrue(this.QueueStorage.Delete(outDouble2), "2nd Delete failed"); Assert.IsTrue(this.QueueStorage.Delete(outDouble3), "3nd Delete failed"); Assert.IsFalse(this.QueueStorage.Delete(outDouble2), "3nd Delete succeeded"); var outAllDoubles = this.QueueStorage.Get<double>(this.QueueName, 20); Assert.AreEqual(7, outAllDoubles.Count(), "Wrong queue item count"); foreach (var dbl in outAllDoubles) { Assert.AreEqual(TestDouble, dbl, "Wrong double value"); Assert.IsTrue(this.QueueStorage.Delete(dbl), "Delete failed"); } const string TestString = "hi there!"; for (var i = 0; i < 10; i++) { this.QueueStorage.Put(this.QueueName, TestString); } var outString1 = this.QueueStorage.Get<string>(this.QueueName, 1).First(); var outString2 = this.QueueStorage.Get<string>(this.QueueName, 1).First(); Assert.IsTrue(this.QueueStorage.Delete(outString1), "1st Delete failed"); Assert.IsTrue(this.QueueStorage.Delete(outString2), "2nd Delete failed"); Assert.IsFalse(this.QueueStorage.Delete(outString2), "3nd Delete succeeded"); var outAllStrings = this.QueueStorage.Get<string>(this.QueueName, 20); Assert.AreEqual(8, outAllStrings.Count(), "Wrong queue item count"); foreach (var str in outAllStrings) { Assert.AreEqual(TestString, str, "Wrong string value"); Assert.IsTrue(this.QueueStorage.Delete(str), "Delete failed"); } var testClass = new StringBuilder("text"); for (var i = 0; i < 10; i++) { this.QueueStorage.Put(this.QueueName, testClass); } var outClass1 = this.QueueStorage.Get<StringBuilder>(this.QueueName, 1).First(); var outClass2 = this.QueueStorage.Get<StringBuilder>(this.QueueName, 1).First(); Assert.IsTrue(this.QueueStorage.Delete(outClass1), "1st Delete failed"); Assert.IsTrue(this.QueueStorage.Delete(outClass2), "2nd Delete failed"); Assert.IsFalse(this.QueueStorage.Delete(outClass2), "3nd Delete succeeded"); var outAllClasses = this.QueueStorage.Get<StringBuilder>(this.QueueName, 20); Assert.AreEqual(8, outAllClasses.Count(), "Wrong queue item count"); foreach (var cls in outAllClasses) { Assert.AreEqual(testClass.ToString(), cls.ToString(), "Wrong deserialized class value"); Assert.IsTrue(this.QueueStorage.Delete(cls), "Delete failed"); } }