public void Versioned_messages_create_a_stack_containing_the_message_type_and_all_superseded_types_oldest_first() { var stack = new MessageVersionStack(typeof(MyMessageV2)); Assert.Equal(typeof(MyMessage), stack.ElementAt(0)); Assert.Equal(typeof(MyMessageV2), stack.ElementAt(1)); }
public void Versioned_message_stack_works_with_arbitrary_type_names() { var stack = new MessageVersionStack(typeof(ComplexMessage)); Assert.Equal(typeof(SimpleMessage), stack.ElementAt(0)); Assert.Equal(typeof(AdvancedMessage), stack.ElementAt(1)); Assert.Equal(typeof(ComplexMessage), stack.ElementAt(2)); }
public void Versioned_message_stack_works_for_more_than_two_versions_and_types_are_ordered_oldest_first() { var stack = new MessageVersionStack(typeof(MyMessageV3)); Assert.Equal(typeof(MyMessage), stack.ElementAt(0)); Assert.Equal(typeof(MyMessageV2), stack.ElementAt(1)); Assert.Equal(typeof(MyMessageV3), stack.ElementAt(2)); }
public void Pop_returns_the_top_of_the_stack() { var stack = new MessageVersionStack(typeof(MyMessageV2)); var top = stack.ElementAt(0); Assert.Equal(stack.Pop(), top); }
public void If_given_just_an_object_the_stack_can_handle_it_without_exceptions() { var stack = new MessageVersionStack(typeof(object)); Assert.Equal(typeof(object), stack.ElementAt(0)); }