public void Indexor_WithNotExistingMediaType_ThrowsException()
        {
            // Arrange
            const string mediaType  = "DoesNotExist";
            var          apiContent = CreateContentMocks("Test1", "Test2");
            var          map        = new ApiCommandContentTypeMap <IApiCommandContent>(apiContent.Values.ToArray());

            // Act
            var exception = Assert.Throws <ApiCommandContentTypeNotFoundException>(() => _ = map[mediaType]);

            // Assert
            Assert.Equal(mediaType, exception.MediaType);

            foreach (var content in apiContent)
            {
                content.Value.Received(1).IsValidFor(Arg.Any <string>());
            }
        }
        public void TryGetSerializer_WithNotExistingMediaType_ThrowsException()
        {
            // Arrange
            const string mediaType  = "DoesNotExist";
            var          apiContent = CreateContentMocks("Test1", "Test2");
            var          map        = new ApiCommandContentTypeMap <IApiCommandContent>(apiContent.Values.ToArray());

            // Act
            var found = map.TryGetSerializer(mediaType, out var contentType);

            // Assert
            Assert.Null(contentType);
            Assert.False(found);

            foreach (var content in apiContent)
            {
                content.Value.Received(1).IsValidFor(Arg.Any <string>());
            }
        }
        public void Indexor_WithExistingMediaType_ExepctedBehaviour()
        {
            // Arrange
            const string mediaType  = "IWantThis";
            var          apiContent = CreateContentMocks("Test1", "Test2", mediaType);
            var          map        = new ApiCommandContentTypeMap <IApiCommandContent>(apiContent.Values.ToArray());

            // Act
            var contentType  = map[mediaType];
            var contentType2 = map[mediaType];

            // Assert
            Assert.NotNull(contentType);
            Assert.NotNull(contentType2);
            Assert.Same(contentType, contentType2);

            Assert.Same(apiContent[mediaType], contentType);

            contentType.Received(1).IsValidFor(Arg.Any <string>());
        }