public static MusicProtocol.MusicAlbum convertMusicReleaseToMusicAlbum(MusicRelease release) {
        MusicProtocol.MusicAlbum.Builder albumBuilder = MusicProtocol.MusicAlbum.newBuilder();

        if (release == null) {
            return albumBuilder.build();
        }

        if (!StringUtils.isBlank(release.getTitle())) {
            albumBuilder.setTitle(release.getTitle());
        }

        if (!StringUtils.isBlank(release.getIcpnCode())) {
            albumBuilder.setIcpnCode(release.getIcpnCode());
        }

        if (release.getByArtists() != null && !release.getByArtists().isEmpty()) {
            List<MusicProtocol.MusicArtist> albumArtists = convertMusicGroupsToMusicArtists(release.getByArtists());
            albumBuilder.addAllAlbumArtist(albumArtists);
        }

        return albumBuilder.build();
    }
@Test
    public void testConvertMusicReleaseToMusicAlbum() {
        String expectedArtistName = "Expected Artist Name";
        MusicGroup musicGroup = new MusicGroup(expectedArtistName);
        String expectedICPN = "1234567890abcdefg";
        String expectedTitle = "Expected Album Title";

        MusicProtocol.MusicAlbum nullMusicAlbum = AppleMusicPlaylistConverter.convertMusicReleaseToMusicAlbum(null);
        Assertions.assertNotNull(nullMusicAlbum);
        Assertions.assertFalse(nullMusicAlbum.hasTitle());
        Assertions.assertFalse(nullMusicAlbum.hasIcpnCode());
        Assertions.assertEquals(nullMusicAlbum.getAlbumArtistCount(), 0);

        MusicRelease emptyTitleMusicRelease = new MusicRelease(expectedICPN, null, List.of(musicGroup));
        MusicProtocol.MusicAlbum emptyTitleMusicAlbum = AppleMusicPlaylistConverter.convertMusicReleaseToMusicAlbum(emptyTitleMusicRelease);
        Assertions.assertNotNull(emptyTitleMusicAlbum);
        Assertions.assertTrue(emptyTitleMusicAlbum.hasIcpnCode());
        Assertions.assertEquals(emptyTitleMusicAlbum.getIcpnCode(), expectedICPN);
        Assertions.assertFalse(emptyTitleMusicAlbum.hasTitle());
        Assertions.assertEquals(emptyTitleMusicAlbum.getAlbumArtistCount(), 1);

        MusicRelease emptyICPNMusicRelease = new MusicRelease(null, expectedTitle, List.of(musicGroup));
        MusicProtocol.MusicAlbum emptyICPNMusicAlbum = AppleMusicPlaylistConverter.convertMusicReleaseToMusicAlbum(emptyICPNMusicRelease);
        Assertions.assertNotNull(emptyICPNMusicAlbum);
        Assertions.assertFalse(emptyICPNMusicAlbum.hasIcpnCode());
        Assertions.assertTrue(emptyICPNMusicAlbum.hasTitle());
        Assertions.assertEquals(emptyICPNMusicAlbum.getTitle(), expectedTitle);
        Assertions.assertEquals(emptyICPNMusicAlbum.getAlbumArtistCount(), 1);

        MusicRelease emptyByArtistsMusicRelease = new MusicRelease(expectedICPN, expectedTitle, null);
        MusicProtocol.MusicAlbum emptyByArtistsMusicAlbum = AppleMusicPlaylistConverter.convertMusicReleaseToMusicAlbum(emptyByArtistsMusicRelease);
        Assertions.assertNotNull(emptyByArtistsMusicAlbum);
        Assertions.assertTrue(emptyByArtistsMusicAlbum.hasIcpnCode());
        Assertions.assertEquals(emptyByArtistsMusicAlbum.getIcpnCode(), expectedICPN);
        Assertions.assertTrue(emptyByArtistsMusicAlbum.hasTitle());
        Assertions.assertEquals(emptyByArtistsMusicAlbum.getTitle(), expectedTitle);
        Assertions.assertEquals(emptyByArtistsMusicAlbum.getAlbumArtistCount(), 0);

        MusicRelease musicRelease = new MusicRelease(expectedICPN, expectedTitle, List.of(musicGroup));
        MusicProtocol.MusicAlbum musicAlbum = AppleMusicPlaylistConverter.convertMusicReleaseToMusicAlbum(musicRelease);
        Assertions.assertNotNull(musicAlbum);
        Assertions.assertTrue(musicAlbum.hasIcpnCode());
        Assertions.assertEquals(musicAlbum.getIcpnCode(), expectedICPN);
        Assertions.assertTrue(musicAlbum.hasTitle());
        Assertions.assertEquals(musicAlbum.getTitle(), expectedTitle);
        Assertions.assertEquals(musicAlbum.getAlbumArtistCount(), 1);
    }