package org.smoothbuild.lang.function.base;
import static java.util.Arrays.asList;
import static org.smoothbuild.lang.function.base.Name.name;
import static org.smoothbuild.lang.function.base.Parameter.optionalParameter;
import static org.smoothbuild.lang.type.Types.BLOB;
import static org.smoothbuild.lang.type.Types.FILE;
import static org.smoothbuild.lang.type.Types.STRING;
import static org.testory.Testory.given;
import static org.testory.Testory.thenReturned;
import static org.testory.Testory.when;
import java.util.List;
import org.junit.Test;
import org.smoothbuild.lang.type.Type;
public class SignatureTest {
private final Type type = STRING;
private final Name name = name("name");
private final List<Parameter> parameters = asList();
private Parameter parameter;
private Parameter parameter2;
@Test(expected = NullPointerException.class)
public void null_type_is_forbidden() {
new Signature(null, name, parameters);
}
@Test(expected = NullPointerException.class)
public void null_name_is_forbidden() {
new Signature(type, null, parameters);
}
@Test(expected = NullPointerException.class)
public void null_param_is_forbidden() {
new Signature(type, name, null);
}
@Test
public void test_to_string() throws Exception {
given(parameter = optionalParameter(BLOB, "blob"));
given(parameter2 = optionalParameter(FILE, "file"));
when(new Signature(STRING, name, asList(parameter, parameter2))).toString();
thenReturned(STRING.name() + " " + name.value() + "(" + parameter.type().name() + " "
+ parameter.name() + ", " + parameter2.type().name() + " " + parameter2.name() + ")");
}
}