public void Deserialize_null_metadata()
        {
            // Arrange

            // Act
            var formatter = new MetadataFormatter();
            var metadata  =
                GetDeserializedOutput <IMetadataFormatter, IMetadata>(formatter,
                                                                      "Json/Fixtures/MetadataFormatter/Deserialize_null_metadata.json").Result;

            // Assert
            metadata.Should().BeNull();
        }
        public void Deserialize_metadata()
        {
            // Arrange

            // Act
            var formatter = new MetadataFormatter();
            var metadata  =
                GetDeserializedOutput <IMetadataFormatter, IMetadata>(formatter,
                                                                      "Json/Fixtures/MetadataFormatter/Deserialize_metadata.json").Result;

            // Assert
            ((int)metadata.MetaObject["foo"]).Should().Be(13);
            var baz = (JObject)metadata.MetaObject["baz"];

            ((string)baz["orange"]).Should().Be("qux");
        }
        public void Serialize_metadata_should_fail_if_object_is_null()
        {
            var mockMetadata = new Mock <IMetadata>(MockBehavior.Strict);

            mockMetadata.Setup(m => m.MetaObject)
            .Returns(() => null);

            var formatter = new MetadataFormatter();

            Func <Task> action = async() =>
            {
                await
                GetSerializedString(formatter, mockMetadata.Object);
            };

            action.ShouldThrow <JsonSerializationException>()
            .WithMessage("The meta object cannot be null.");
        }
        public async Task Serialize_metadata()
        {
            var mockMetadata = new Mock <IMetadata>(MockBehavior.Strict);

            mockMetadata.Setup(m => m.MetaObject)
            .Returns(() =>
            {
                var subObject      = new JObject();
                subObject["color"] = "yellow";
                subObject["foo"]   = 3;

                var obj       = new JObject();
                obj["banana"] = subObject;
                obj["bar"]    = new DateTime(1776, 07, 04);
                return(obj);
            });

            var formatter = new MetadataFormatter();

            await AssertSerializeOutput(formatter, mockMetadata.Object, "Json/Fixtures/MetadataFormatter/Serialize_metadata.json");
        }
        public async Task Serialize_null_metadata()
        {
            var formatter = new MetadataFormatter();

            await AssertSerializeOutput(formatter, (IMetadata)null, "Json/Fixtures/MetadataFormatter/Serialize_null_metadata.json");
        }