package org.erlide.engine.model.erlang; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertEquals; import java.util.List; import org.junit.Test; import com.google.common.collect.Lists; public class IErlFunctionClauseTest extends ErlModelTestBase2 { // public String getHead(); @Test public void getHead() throws Exception { final String head = functionA.getHead(); final List<IErlFunctionClause> clauses = functionA.getClauses(); final String head2 = clauses.get(0).getHead(); final String head3 = clauses.get(1).getHead(); final String head4 = functionB.getHead(); final String head5 = functionC.getHead(); assertThat(head, is(nullValue())); assertThat(head2, is("(L) when is_list(L)")); assertEquals("(A) when is_atom(A)", head3); assertEquals("", head4); assertEquals("(A, B, C)", head5); } // public String getFunctionName(); @Test public void getFunctionName() throws Exception { final List<IErlFunctionClause> clauses = functionA.getClauses(); final String functionName = clauses.get(0).getFunctionName(); final String functionName2 = clauses.get(1).getFunctionName(); assertEquals("a", functionName); assertEquals("a", functionName2); } // public List<String> getParameters(); @Test public void getParameters() throws Exception { final List<IErlFunctionClause> clauses = functionA.getClauses(); final List<String> parameters = clauses.get(0).getParameters(); final List<String> parameters2 = clauses.get(1).getParameters(); final List<String> parameters3 = functionC.getParameters(); assertEquals(Lists.newArrayList("L"), parameters); assertEquals(Lists.newArrayList("A"), parameters2); assertEquals(Lists.newArrayList("A", "B", "C"), parameters3); } // int getArity(); @Test public void getArity() throws Exception { final int arity = functionA.getArity(); final List<IErlFunctionClause> clauses = functionA.getClauses(); final int arity2 = clauses.get(0).getArity(); final int arity3 = clauses.get(1).getArity(); final int arity4 = functionB.getArity(); final int arity5 = functionC.getArity(); assertEquals(1, arity); assertEquals(1, arity2); assertEquals(1, arity3); assertEquals(0, arity4); assertEquals(3, arity5); } }