public override bool Equals(object obj) { TestSerializableClass other = obj as TestSerializableClass; if (other != null) { return (this.Prop1 == other.Prop1 && this.Prop2 == other.Prop2 && this.Prop3Equal(other.Prop3)); } return(false); }
public void BasicCorrectnessTest() { // basic test of a string string testString = "foo bar baz"; string testSerialized = this.srsly.SerializeOne(testString); Assert.Equal(testString, (string)this.srsly.DeserializeOne(testSerialized)); // basic test of an int int testInt = 153; string testIntSrlzed = this.srsly.SerializeOne(testInt); Assert.Equal(testInt, (int)this.srsly.DeserializeOne(testIntSrlzed)); // basic test of a long long testLong = 123456L; string testLongSrlzed = this.srsly.SerializeOne(testLong); Assert.Equal(testLong, (long)this.srsly.DeserializeOne(testLongSrlzed)); // basic test of a long double testDouble = 123456.756D; string testDoubleSrlzed = this.srsly.SerializeOne(testDouble); Assert.Equal(testDouble, (double)this.srsly.DeserializeOne(testDoubleSrlzed)); // basic test of a decimal decimal testFloat = 1234.8564M; string testFloatSrlzed = this.srsly.SerializeOne(testFloat); Assert.Equal(testFloat, (decimal)this.srsly.DeserializeOne(testFloatSrlzed)); // basic test of a long int[] testIntArr = new int[] { 1, 2, 3 }; string testIntArrSrlzed = this.srsly.SerializeOne(testIntArr); Assert.Equal(testIntArr, (int[])this.srsly.DeserializeOne(testIntArrSrlzed)); // basic test of a long string[] testStringArr = new string[] { "a", "b", "c" }; string testStringArrSrlzed = this.srsly.SerializeOne(testStringArr); Assert.Equal(testStringArr, (string[])this.srsly.DeserializeOne(testStringArrSrlzed)); // basic class serialization TestSerializableClass tClass = new TestSerializableClass() { Prop1 = "first", Prop2 = 2, Prop3 = null }; string tClassSrlzed = this.srsly.SerializeOne(tClass); TestSerializableClass dsrlzdTClass = this.srsly.DeserializeOne(tClassSrlzed) as TestSerializableClass; Assert.True(tClass.Equals(dsrlzdTClass)); Assert.Throws <InvalidCastException>(() => { var x = (TestSubclass)this.srsly.DeserializeOne(tClassSrlzed); }); // test deserialize type correctness TestSubclass subTClass = new TestSubclass() { Prop1 = "second", Prop2 = 42, Prop3 = new List <string> { "a", "b" } }; string subClassSrlzed = this.srsly.SerializeOne(subTClass); TestSerializableClass dsrlzdSubTClass = this.srsly.DeserializeOne(subClassSrlzed) as TestSubclass; Assert.True(dsrlzdSubTClass.Equals(subTClass)); }