package org.jtwig.value.convert.bool;
import com.google.common.collect.ImmutableMap;
import org.jtwig.value.Undefined;
import org.jtwig.value.convert.Converter;
import org.junit.Test;
import static java.util.Collections.*;
import static org.junit.Assert.assertEquals;
public class BooleanConverterTest {
private BooleanConverter underTest = new BooleanConverter();
@Test
public void convertNull() throws Exception {
Converter.Result<Boolean> result = underTest.convert(null);
assertEquals(false, result.get());
}
@Test
public void convertUndefined() throws Exception {
Converter.Result<Boolean> result = underTest.convert(Undefined.UNDEFINED);
assertEquals(false, result.get());
}
@Test
public void convertStringTrue() throws Exception {
Converter.Result<Boolean> result = underTest.convert("true");
assertEquals(true, result.get());
}
@Test
public void convertStringFalse() throws Exception {
Converter.Result<Boolean> result = underTest.convert("false");
assertEquals(false, result.get());
}
@Test
public void convertStringEmpty() throws Exception {
Converter.Result<Boolean> result = underTest.convert("");
assertEquals(false, result.isDefined());
}
@Test
public void convertStringNotEmpty() throws Exception {
Converter.Result<Boolean> result = underTest.convert("asdsad");
assertEquals(false, result.isDefined());
}
@Test
public void convertArrayEmpty() throws Exception {
Converter.Result<Boolean> result = underTest.convert(new Object[]{});
assertEquals(false, result.get());
}
@Test
public void convertArrayNonEmpty() throws Exception {
Converter.Result<Boolean> result = underTest.convert(new Object[]{new Object()});
assertEquals(true, result.get());
}
@Test
public void convertEmptyList() throws Exception {
Converter.Result<Boolean> result = underTest.convert(emptyList());
assertEquals(false, result.get());
}
@Test
public void convertEmptyMap() throws Exception {
Converter.Result<Boolean> result = underTest.convert(emptyMap());
assertEquals(false, result.get());
}
@Test
public void convertMap() throws Exception {
Converter.Result<Boolean> result = underTest.convert(ImmutableMap.of("String", "asd"));
assertEquals(true, result.get());
}
@Test
public void convertNonEmptyList() throws Exception {
Converter.Result<Boolean> result = underTest.convert(singletonList(new Object()));
assertEquals(true, result.get());
}
@Test
public void convertNumberZero() throws Exception {
Converter.Result<Boolean> result = underTest.convert(0);
assertEquals(false, result.get());
}
@Test
public void convertNumberNonZero() throws Exception {
Converter.Result<Boolean> result = underTest.convert(1);
assertEquals(true, result.get());
}
@Test
public void convertOther() throws Exception {
Converter.Result<Boolean> result = underTest.convert(new Object());
assertEquals(false, result.isDefined());
}
}