public void ShouldConvertCustomIImageMessageToImageMessage()
            {
                var message = new TestImageMessage();

                var imageMessage = ImageMessage.Convert(message);

                Assert.AreNotEqual(message, imageMessage);
                Assert.AreEqual(new Uri("https://foo.url"), imageMessage.Url);
                Assert.AreEqual(new Uri("https://foo.previewUrl"), imageMessage.PreviewUrl);
            }
            public void ShouldThrowExceptionWhenPreviewUrlIsNull()
            {
                var message = new ImageMessage()
                {
                    Url = new Uri("https://foo.url")
                };

                ExceptionAssert.Throws <InvalidOperationException>("The preview url cannot be null.", () =>
                {
                    ImageMessage.Convert(message);
                });
            }
            public void ShouldPreserveInstanceWhenValueIsImageMessage()
            {
                var message = new ImageMessage()
                {
                    Url        = new Uri("https://foo.url"),
                    PreviewUrl = new Uri("https://foo.previewUrl")
                };

                var imageMessage = ImageMessage.Convert(message);

                Assert.AreSame(message, imageMessage);
            }