package com.vaessl.app.search;

import static com.vaessl.app.Mockdata.*;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Map;
import org.junit.jupiter.api.Test;
import com.vaessl.app.shared.ServiceItem;

class SearchResponseTest {

    @Test
    void shouldReturnNullWhenExtraDataIsNull() {
        ServiceItem response = new ServiceItem(MOCK_ID, MOCK_TITLE, MOCK_DESCRIPTION, null);

        assertThat(response.getExtra(null)).isNull();
    }

    @Test
    void shouldReturnNullWhenExtraDataKeyIsMissing() {

        ServiceItem response = new ServiceItem(MOCK_ID, MOCK_TITLE, MOCK_DESCRIPTION, Map.of("key", "value"));

        assertThat(response.getExtra("missing")).isNull();
    }

    @Test
    void shouldReturnExtraDataValue() {

        ServiceItem response = new ServiceItem(MOCK_ID, MOCK_TITLE, MOCK_DESCRIPTION, Map.of("key", "value"));

        assertThat(response.id()).isEqualTo(MOCK_ID);
        assertThat(response.getExtra("key")).contains("value");

    }
}
