package function.builtin.special;

import static testutil.TestUtilities.*;

import org.junit.Test;

import function.ArgumentValidator.*;

public class QUOTETester {

    @Test
    public void testQuoteSymbol() {
        String input = "'a";

        assertSExpressionsMatch(parseString("a"), evaluateString(input));
    }

    @Test
    public void testQuoteList() {
        String input = "'(l i s t)";

        assertSExpressionsMatch(parseString("(l i s t)"), evaluateString(input));
    }

    @Test(expected = TooFewArgumentsException.class)
    public void testQuoteWithTooFewArguments() {
        evaluateString("(quote)");
    }

    @Test(expected = TooManyArgumentsException.class)
    public void testQuoteWithTooManyArguments() {
        evaluateString("(quote a b)");
    }

}
