package io.delphiplatform.api.v3.bigtable.processing;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import io.delphiplatform.api.v3.bigtable.entity.PlaylistPosition;
import io.delphiplatform.api.v3.model.trackposition.PlaylistTrackPosition;

class TrackPositionConverterTest {

    private TrackPositionConverter converter = new TrackPositionConverter();

    @Test
    void convertPlaylistPositions() {
        PlaylistPosition chartPosition = new PlaylistPosition();
        chartPosition.setDate(LocalDate.of(2020, 10, 10));
        chartPosition.setDsp("amazon");
        chartPosition.setPlaylistId("playlist1");
        chartPosition.setIsrc("test_isrc");
        chartPosition.setCurrent(100L);

        List<PlaylistTrackPosition> collect = converter.convertPlaylistPositions(Stream.of(chartPosition))
            .collect(Collectors.toList());

        PlaylistTrackPosition converted = collect.get(0);

        Assertions.assertEquals("amazon", converted.getDsp());
        Assertions.assertEquals("playlist1", converted.getPlaylistId());
        Assertions.assertEquals("test_isrc", converted.getIsrc());
        Assertions.assertEquals(100L, converted.getCurrent());
        Assertions.assertEquals(LocalDate.of(2020, 10, 10), converted.getDate());
    }
}