Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduced PreserveReferencesAttribute #82

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions Hyperion.Tests/CollectionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ namespace Hyperion.Tests
public class CollectionTests : TestBase
{
[Fact]
public void CanSerializeArrayOfTuples()
public void Serializer_should_work_with_array_of_tuples()
{
var expected = new[]
{
Expand All @@ -40,7 +40,7 @@ public void CanSerializeArrayOfTuples()
}

[Fact]
public void CanSerializeByteArray()
public void Serializer_should_work_with_byte_array()
{
var expected = new byte[]
{
Expand All @@ -54,7 +54,7 @@ public void CanSerializeByteArray()


[Fact]
public void CanSerializeDictionary()
public void Serializer_should_work_with_dictionary()
{
var expected = new Dictionary<string, string>
{
Expand All @@ -69,7 +69,7 @@ public void CanSerializeDictionary()
}

[Fact]
public void CanSerializeDictionaryKeysAndValuesByteChar()
public void Serializer_should_work_with_dictionary_of_byte_to_char()
{
var instance = new Dictionary<byte, char> {{0, 'z'}, {255, 'z'}, {3, char.MinValue}};
Serialize(instance);
Expand All @@ -85,7 +85,7 @@ public void CanSerializeDictionaryKeysAndValuesByteChar()
}

[Fact]
public void CanSerializeDictionaryKeysAndValuesByteString()
public void Serializer_should_work_with_dictionary_of_byte_to_string()
{
var instance = new Dictionary<byte, string> {{0, "z"}, {255, "z"}, {3, null}};
Serialize(instance);
Expand All @@ -102,7 +102,7 @@ public void CanSerializeDictionaryKeysAndValuesByteString()


[Fact]
public void CanSerializeExpandoObject()
public void Serializer_should_work_with_ExpandoObject()
{
var obj = new ExpandoObject();
var dict = (IDictionary<string, object>) obj;
Expand All @@ -125,7 +125,7 @@ public void CanSerializeExpandoObject()
}

[Fact]
public void CanSerializeImmutableDictionary()
public void Serializer_should_work_with_immutable_dictionary()
{
var map = ImmutableDictionary<string, object>.Empty;
var serializer = new Serializer();
Expand All @@ -139,7 +139,7 @@ public void CanSerializeImmutableDictionary()
}

[Fact]
public void CanSerializeIntArray()
public void Serializer_should_work_with_array_of_ints()
{
var expected = Enumerable.Range(0, 10000).ToArray();
Serialize(expected);
Expand All @@ -149,7 +149,7 @@ public void CanSerializeIntArray()
}

[Fact]
public void CanSerializeList()
public void Serializer_should_work_with_list()
{
var expected = new[]
{
Expand All @@ -173,7 +173,7 @@ public void CanSerializeList()
}

[Fact]
public void CanSerializeLinkedList()
public void Serializer_should_work_with_linked_list()
{
var expected = new LinkedList<Something>(new[]
{
Expand All @@ -197,7 +197,7 @@ public void CanSerializeLinkedList()
}

[Fact(Skip = "add support for multi dimentional arrays")]
public void CanSerializeMultiDimentionalArray()
public void Serializer_should_work_with_multi_dimensional_array()
{
var expected = new double[3, 3, 3];
for (var i = 0; i < 3; i++)
Expand All @@ -217,7 +217,7 @@ public void CanSerializeMultiDimentionalArray()
}

[Fact]
public void CanSerializeObjectArray()
public void Serializer_should_work_with_array_of_objects()
{
var expected = new[]
{
Expand All @@ -241,7 +241,7 @@ public void CanSerializeObjectArray()
}

[Fact]
public void CanSerializePrimitiveArray()
public void Serializer_should_work_with_array_of_primitive_types()
{
var expected = new[] {DateTime.MaxValue, DateTime.MinValue, DateTime.Now, DateTime.Today};
Serialize(expected);
Expand All @@ -251,7 +251,7 @@ public void CanSerializePrimitiveArray()
}

[Fact]
public void CanSerializeSet()
public void Serializer_should_work_with_set()
{
var expected = new HashSet<Something>
{
Expand All @@ -277,7 +277,7 @@ public void CanSerializeSet()
}

[Fact]
public void CanSerializeStack()
public void Serializer_should_work_with_stack()
{
var expected = new Stack<Something>();
expected.Push(new Something
Expand Down Expand Up @@ -363,7 +363,7 @@ public CustomAddRange(IImmutableList<int> inner)
#endregion

[Fact]
public void CanSerializeCustomEnumerableWithNonStandardAddSignature()
public void Serializer_should_work_with_custom_enumerable_with_non_standard_Add_method()
{
var init = new CustomAdd(ImmutableList<int>.Empty);
var expected = init.Add(1).Add(2);
Expand All @@ -375,7 +375,7 @@ public void CanSerializeCustomEnumerableWithNonStandardAddSignature()
}

[Fact]
public void CanSerializeCustomEnumerableWithNonStandardAddRangeSignature()
public void Serializer_should_work_with_custom_enumerable_with_non_standard_AddRange_method()
{
var init = new CustomAddRange(ImmutableList<int>.Empty);
var expected = init.AddRange("label", new []{ 1, 2, 3 });
Expand Down Expand Up @@ -490,7 +490,7 @@ public void Add(NotKnown item)
}

[Fact]
public void CanInstantiateSerializerForCollectionWithAmbiguousAddMethod()
public void Serializer_should_work_with_collection_with_ambiguous_Add_method()
{
var serializer = new Serializer(
new SerializerOptions(knownTypes: new List<Type> {typeof(DerivedContainer)},
Expand Down
27 changes: 13 additions & 14 deletions Hyperion.Tests/CustomObjectTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ private class PrivateType
{
public int IntProp { get; set; }
}

[Fact]
public void CanSerializePrivateType()
public void Serializer_should_work_with_non_public_types()
{
var expected = new PrivateType()
{
Expand All @@ -33,7 +34,7 @@ public void CanSerializePrivateType()
}

[Fact]
public void CanSerializeTypeObject()
public void Serializer_should_work_with_Type()
{
var expected = typeof(ArgumentException);
Serialize(expected);
Expand All @@ -43,7 +44,7 @@ public void CanSerializeTypeObject()
}

[Fact]
public void CanSerializeNull()
public void Serializer_should_work_with_null()
{
var expected = new Something
{
Expand All @@ -61,7 +62,7 @@ public void CanSerializeNull()
//all custom exception information will be lost.
//only message, inner exception, stacktrace and the bare minimum will be preserved.
[Fact]
public void CanSerializeException()
public void Serializer_should_work_with_Exceptions()
{
var expected = new Exception("hello wire");
Serialize(expected);
Expand All @@ -72,7 +73,7 @@ public void CanSerializeException()
}

[Fact]
public void CanSerializePolymorphicObject()
public void Serializer_should_work_with_polymorphic_objects()
{
var expected = new Something
{
Expand All @@ -89,23 +90,22 @@ public void CanSerializePolymorphicObject()
}

[Fact]
public void CanSerializeStruct()
public void Serializer_should_work_with_structs()
{
var expected = new StuctValue
{
Prop1 = "hello",
Prop2 = 123,
};


Serialize(expected);
Reset();
var actual = Deserialize<StuctValue>();
Assert.Equal(expected, actual);
}

[Fact]
public void CanSerializeObject()
public void Serializer_should_work_with_custom_classes()
{
var expected = new Something
{
Expand All @@ -114,16 +114,15 @@ public void CanSerializeObject()
NullableInt32PropHasValue = 888,
StringProp = "hello",
};



Serialize(expected);
Reset();
var actual = Deserialize<Something>();
Assert.Equal(expected, actual);
}

[Fact]
public void CanSerializeObjects()
public void Serializer_should_work_with_custom_classes_2()
{
var expected1 = new Something
{
Expand All @@ -147,7 +146,7 @@ public void CanSerializeObjects()
}

[Fact]
public void CanSerializeTuple()
public void Serializer_should_work_with_tuples()
{
var expected = Tuple.Create("hello");
Serialize(expected);
Expand All @@ -157,7 +156,7 @@ public void CanSerializeTuple()
}

[Fact]
public void CanEmptyObject()
public void Serializer_should_work_with_objects_without_any_fields()
{
var expected = new Empty();

Expand All @@ -168,7 +167,7 @@ public void CanEmptyObject()
}

[Fact]
public void CanSerializeObjectsKnownTypes()
public void Serializer_should_work_with_objects_marked_as_known_types()
{
CustomInit(new Serializer(new SerializerOptions(knownTypes:new[] {typeof(Something)})));
var expected1 = new Something
Expand Down
10 changes: 5 additions & 5 deletions Hyperion.Tests/CyclicTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace Hyperion.Tests
public class CyclicTests
{
[Fact]
public void CanSerializeDeepCyclicReferences()
public void Serializer_should_work_with_deeply_cycled_object_references()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions(versionTolerance: true, preserveObjectReferences: true));
Expand All @@ -37,7 +37,7 @@ public void CanSerializeDeepCyclicReferences()
}

[Fact]
public void CanSerializeDictionaryPreserveObjectReferences()
public void Serializer_should_work_with_dictionary_and_preserve_object_references()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions(versionTolerance: true, preserveObjectReferences: true));
Expand All @@ -61,7 +61,7 @@ public void CanSerializeDictionaryPreserveObjectReferences()

//From Orleans
[Fact]
public void CanSerializeDictionaryPreserveObjectReferences2()
public void Serializer_should_work_with_dictionary_and_preserve_object_references_2()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions(versionTolerance: true, preserveObjectReferences: true));
Expand All @@ -88,7 +88,7 @@ public void CanSerializeDictionaryPreserveObjectReferences2()


[Fact]
public void CanSerializeCyclicReferences()
public void Serializer_should_work_with_cyclic_references()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions(versionTolerance: true, preserveObjectReferences: true));
Expand All @@ -104,7 +104,7 @@ public void CanSerializeCyclicReferences()
}

[Fact]
public void CanSerializeMultiLevelCyclicReferences()
public void Serializer_should_work_with_multilevel_cyclic_object_references()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions(preserveObjectReferences: true));
Expand Down
8 changes: 4 additions & 4 deletions Hyperion.Tests/DelegateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void Create()
}

[Fact]
public void CanSerializeMemberMethod()
public void Serializer_should_work_with_member_method()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions());
Expand All @@ -46,7 +46,7 @@ public void CanSerializeMemberMethod()
}

[Fact]
public void CanSerializeDelegate()
public void Serializer_should_work_with_delegates()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions());
Expand All @@ -68,7 +68,7 @@ private static int StaticFunc(int a)
}

[Fact]
public void CanSerializeStaticDelegate()
public void Serializer_should_work_with_static_delegates()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions());
Expand All @@ -85,7 +85,7 @@ public void CanSerializeStaticDelegate()
}

[Fact]
public void CanSerializeObjectWithClosure()
public void Serializer_should_work_with_objects_with_closures()
{
var stream = new MemoryStream();
var serializer = new Serializer(new SerializerOptions());
Expand Down
Loading