コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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));
        }