package com.faforever.client.remote.gson;
import com.faforever.client.remote.domain.VictoryCondition;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class VictoryConditionTypeAdapterTest {
private VictoryConditionTypeAdapter instance;
@Before
public void setUp() throws Exception {
instance = VictoryConditionTypeAdapter.INSTANCE;
}
@Test
public void testWrite() throws Exception {
JsonWriter out = mock(JsonWriter.class);
instance.write(out, VictoryCondition.DEMORALIZATION);
verify(out).value((int) VictoryCondition.DEMORALIZATION.getValue());
}
@Test
public void testWriteNull() throws Exception {
JsonWriter out = mock(JsonWriter.class);
instance.write(out, null);
verify(out).value((String) VictoryCondition.UNKNOWN.getValue());
}
@Test
public void testReadNormal() throws Exception {
JsonReader in = mock(JsonReader.class);
when(in.nextString()).thenReturn(String.valueOf(VictoryCondition.DOMINATION.getValue()));
VictoryCondition victoryCondition = instance.read(in);
assertEquals(VictoryCondition.DOMINATION, victoryCondition);
}
@Test
public void testReadNullValue() throws Exception {
JsonReader in = mock(JsonReader.class);
when(in.nextString()).thenReturn(null);
VictoryCondition victoryCondition = instance.read(in);
assertEquals(VictoryCondition.UNKNOWN, victoryCondition);
}
}