// Copyright © 2015 HSL <https://www.hsl.fi> // This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses. package fi.hsl.parkandride.core.domain; import static org.assertj.core.api.Assertions.assertThat; import java.util.Map; import org.junit.Test; import nl.jqno.equalsverifier.EqualsVerifier; import nl.jqno.equalsverifier.Warning; public class MultilingualStringTest { @Test public void equals_and_hashcode() { EqualsVerifier.forExamples(new MultilingualString(), new MultilingualString("foo"), new MultilingualString("fi", "sv", "en")) .suppress(Warning.NONFINAL_FIELDS) .verify(); } @Test(expected = IllegalArgumentException.class) public void unsupported_language() { assertThat(new MultilingualString().asMap().put("foo", "exception")); } @Test public void as_map_read() { Map<String, String> map = new MultilingualString("Finnish", "Swedish", "English").asMap(); assertThat(map.get("fi")).isEqualTo("Finnish"); assertThat(map.get("sv")).isEqualTo("Swedish"); assertThat(map.get("en")).isEqualTo("English"); assertThat(map.get("foo")).isNull(); } @Test public void as_map_modify() { MultilingualString str = new MultilingualString(); assertThat(str.toString()).isEqualTo("MultilingualString{fi=null, sv=null, en=null}"); Map<String, String> map = str.asMap(); map.put("fi", "Finnish"); assertThat(str.getFi()).isEqualTo("Finnish"); map.put("sv", "Swedish"); assertThat(str.getSv()).isEqualTo("Swedish"); map.put("en", "English"); assertThat(str.getEn()).isEqualTo("English"); assertThat(str.toString()).isEqualTo("MultilingualString{fi=Finnish, sv=Swedish, en=English}"); } }