public void UsesDefaultSerializerSettings_WhenNoSettingsProvided()
        {
            var testee = new NewtonsoftJsonMessageSerializer();

            var messageNotSerializableByDefaultConverters = Message.Create("Text");

            using (var target = new MemoryStream())
            {
                testee.Serialize(messageNotSerializableByDefaultConverters, target);
                // ReSharper disable once AccessToDisposedClosure delegate is executed inside the using clause
                Action act = () => testee.Deserialize(target, typeof(Message));

                AssertThatDefaultSerializerSettingsAreUsed(act);
            }
        }
        public void UsesProvidedSerializerSettings()
        {
            var settings = new JsonSerializerSettings
            {
                Converters = new List <JsonConverter> {
                    new MessageConverter()
                }
            };

            var testee = new NewtonsoftJsonMessageSerializer(() => settings);

            var message = Message.Create("Text");

            using (var target = new MemoryStream())
            {
                testee.Serialize(message, target);
                var result = (Message)testee.Deserialize(target, typeof(Message));

                result.ShouldBeEquivalentTo(message);
            }
        }