Skip to content

Commit 6d2f5f7

Browse files
Copilotstephentoub
andcommitted
Consolidate AIContent roundtrip tests: combine separate tests, remove duplicative ones
- Merge *_ToAIContent_PreservesData and *_ToAIContent_RoundTrips into single tests that validate both the intermediate DataContent and the roundtripped block - Remove duplicative DataContent_*ToContentBlock_PreservesData tests (already covered by the roundtrip tests) - Add missing MediaType assertions on intermediate DataContent for *_DataSetter and *_BlobSetter test variants Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
1 parent 7c5c692 commit 6d2f5f7

1 file changed

Lines changed: 12 additions & 83 deletions

File tree

tests/ModelContextProtocol.Tests/AIContentExtensionsTests.cs

Lines changed: 12 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -429,28 +429,17 @@ public static TheoryData<byte[]> Base64TestData()
429429
return data;
430430
}
431431

432-
[Theory]
433-
[MemberData(nameof(Base64TestData))]
434-
public void ImageContentBlock_ToAIContent_PreservesData(byte[] originalBytes)
435-
{
436-
var image = ImageContentBlock.FromBytes(originalBytes, "image/png");
437-
438-
var aiContent = image.ToAIContent();
439-
440-
var dataContent = Assert.IsType<DataContent>(aiContent);
441-
Assert.Equal("image/png", dataContent.MediaType);
442-
Assert.Equal(originalBytes, dataContent.Data.ToArray());
443-
}
444-
445432
[Theory]
446433
[MemberData(nameof(Base64TestData))]
447434
public void ImageContentBlock_ToAIContent_RoundTrips(byte[] originalBytes)
448435
{
449436
var image = ImageContentBlock.FromBytes(originalBytes, "image/png");
450437

451438
var aiContent = Assert.IsType<DataContent>(image.ToAIContent());
452-
var roundTripped = Assert.IsType<ImageContentBlock>(aiContent.ToContentBlock());
439+
Assert.Equal("image/png", aiContent.MediaType);
440+
Assert.Equal(originalBytes, aiContent.Data.ToArray());
453441

442+
var roundTripped = Assert.IsType<ImageContentBlock>(aiContent.ToContentBlock());
454443
Assert.Equal("image/png", roundTripped.MimeType);
455444
Assert.Equal(originalBytes, roundTripped.DecodedData.ToArray());
456445
}
@@ -467,35 +456,25 @@ public void ImageContentBlock_DataSetter_ToAIContent_RoundTrips(byte[] originalB
467456
};
468457

469458
var aiContent = Assert.IsType<DataContent>(image.ToAIContent());
459+
Assert.Equal("image/jpeg", aiContent.MediaType);
470460
Assert.Equal(originalBytes, aiContent.Data.ToArray());
471461

472462
var roundTripped = Assert.IsType<ImageContentBlock>(aiContent.ToContentBlock());
473463
Assert.Equal("image/jpeg", roundTripped.MimeType);
474464
Assert.Equal(originalBytes, roundTripped.DecodedData.ToArray());
475465
}
476466

477-
[Theory]
478-
[MemberData(nameof(Base64TestData))]
479-
public void AudioContentBlock_ToAIContent_PreservesData(byte[] originalBytes)
480-
{
481-
var audio = AudioContentBlock.FromBytes(originalBytes, "audio/wav");
482-
483-
var aiContent = audio.ToAIContent();
484-
485-
var dataContent = Assert.IsType<DataContent>(aiContent);
486-
Assert.Equal("audio/wav", dataContent.MediaType);
487-
Assert.Equal(originalBytes, dataContent.Data.ToArray());
488-
}
489-
490467
[Theory]
491468
[MemberData(nameof(Base64TestData))]
492469
public void AudioContentBlock_ToAIContent_RoundTrips(byte[] originalBytes)
493470
{
494471
var audio = AudioContentBlock.FromBytes(originalBytes, "audio/wav");
495472

496473
var aiContent = Assert.IsType<DataContent>(audio.ToAIContent());
497-
var roundTripped = Assert.IsType<AudioContentBlock>(aiContent.ToContentBlock());
474+
Assert.Equal("audio/wav", aiContent.MediaType);
475+
Assert.Equal(originalBytes, aiContent.Data.ToArray());
498476

477+
var roundTripped = Assert.IsType<AudioContentBlock>(aiContent.ToContentBlock());
499478
Assert.Equal("audio/wav", roundTripped.MimeType);
500479
Assert.Equal(originalBytes, roundTripped.DecodedData.ToArray());
501480
}
@@ -512,27 +491,14 @@ public void AudioContentBlock_DataSetter_ToAIContent_RoundTrips(byte[] originalB
512491
};
513492

514493
var aiContent = Assert.IsType<DataContent>(audio.ToAIContent());
494+
Assert.Equal("audio/mp3", aiContent.MediaType);
515495
Assert.Equal(originalBytes, aiContent.Data.ToArray());
516496

517497
var roundTripped = Assert.IsType<AudioContentBlock>(aiContent.ToContentBlock());
518498
Assert.Equal("audio/mp3", roundTripped.MimeType);
519499
Assert.Equal(originalBytes, roundTripped.DecodedData.ToArray());
520500
}
521501

522-
[Theory]
523-
[MemberData(nameof(Base64TestData))]
524-
public void BlobResourceContents_ToAIContent_PreservesData(byte[] originalBytes)
525-
{
526-
var blob = BlobResourceContents.FromBytes(originalBytes, "file:///test.bin", "application/octet-stream");
527-
var embedded = new EmbeddedResourceBlock { Resource = blob };
528-
529-
var aiContent = embedded.ToAIContent();
530-
531-
var dataContent = Assert.IsType<DataContent>(aiContent);
532-
Assert.Equal("application/octet-stream", dataContent.MediaType);
533-
Assert.Equal(originalBytes, dataContent.Data.ToArray());
534-
}
535-
536502
[Theory]
537503
[MemberData(nameof(Base64TestData))]
538504
public void BlobResourceContents_ToAIContent_RoundTrips(byte[] originalBytes)
@@ -541,9 +507,11 @@ public void BlobResourceContents_ToAIContent_RoundTrips(byte[] originalBytes)
541507
var embedded = new EmbeddedResourceBlock { Resource = blob };
542508

543509
var aiContent = Assert.IsType<DataContent>(embedded.ToAIContent());
510+
Assert.Equal("application/octet-stream", aiContent.MediaType);
511+
Assert.Equal(originalBytes, aiContent.Data.ToArray());
512+
544513
var roundTripped = Assert.IsType<EmbeddedResourceBlock>(aiContent.ToContentBlock());
545514
var roundTrippedBlob = Assert.IsType<BlobResourceContents>(roundTripped.Resource);
546-
547515
Assert.Equal("application/octet-stream", roundTrippedBlob.MimeType);
548516
Assert.Equal(originalBytes, roundTrippedBlob.DecodedData.ToArray());
549517
}
@@ -562,6 +530,7 @@ public void BlobResourceContents_BlobSetter_ToAIContent_RoundTrips(byte[] origin
562530
var embedded = new EmbeddedResourceBlock { Resource = blob };
563531

564532
var aiContent = Assert.IsType<DataContent>(embedded.ToAIContent());
533+
Assert.Equal("application/octet-stream", aiContent.MediaType);
565534
Assert.Equal(originalBytes, aiContent.Data.ToArray());
566535

567536
var roundTripped = Assert.IsType<EmbeddedResourceBlock>(aiContent.ToContentBlock());
@@ -570,46 +539,6 @@ public void BlobResourceContents_BlobSetter_ToAIContent_RoundTrips(byte[] origin
570539
Assert.Equal(originalBytes, roundTrippedBlob.DecodedData.ToArray());
571540
}
572541

573-
[Theory]
574-
[MemberData(nameof(Base64TestData))]
575-
public void DataContent_ImageToContentBlock_PreservesData(byte[] originalBytes)
576-
{
577-
var dataContent = new DataContent(originalBytes, "image/png");
578-
579-
var contentBlock = dataContent.ToContentBlock();
580-
581-
var image = Assert.IsType<ImageContentBlock>(contentBlock);
582-
Assert.Equal("image/png", image.MimeType);
583-
Assert.Equal(originalBytes, image.DecodedData.ToArray());
584-
}
585-
586-
[Theory]
587-
[MemberData(nameof(Base64TestData))]
588-
public void DataContent_AudioToContentBlock_PreservesData(byte[] originalBytes)
589-
{
590-
var dataContent = new DataContent(originalBytes, "audio/wav");
591-
592-
var contentBlock = dataContent.ToContentBlock();
593-
594-
var audio = Assert.IsType<AudioContentBlock>(contentBlock);
595-
Assert.Equal("audio/wav", audio.MimeType);
596-
Assert.Equal(originalBytes, audio.DecodedData.ToArray());
597-
}
598-
599-
[Theory]
600-
[MemberData(nameof(Base64TestData))]
601-
public void DataContent_BlobToContentBlock_PreservesData(byte[] originalBytes)
602-
{
603-
var dataContent = new DataContent(originalBytes, "application/octet-stream");
604-
605-
var contentBlock = dataContent.ToContentBlock();
606-
607-
var embedded = Assert.IsType<EmbeddedResourceBlock>(contentBlock);
608-
var blob = Assert.IsType<BlobResourceContents>(embedded.Resource);
609-
Assert.Equal("application/octet-stream", blob.MimeType);
610-
Assert.Equal(originalBytes, blob.DecodedData.ToArray());
611-
}
612-
613542
[Theory]
614543
[MemberData(nameof(Base64TestData))]
615544
public void ImageContentBlock_JsonDeserialized_ToAIContent_RoundTrips(byte[] originalBytes)

0 commit comments

Comments
 (0)