package bnf;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class TokenTest {

    @Before
    public void setUp() throws Exception {}

    @Test
    public void testToken() {
        Token t = new Token(TokenType.TERMINAL, "xyz");
        assertEquals(TokenType.TERMINAL, t.getType());
        assertEquals("xyz", t.getValue());
    }
    
    @Test
    public void testEquals() {
        Token t1 = new Token(TokenType.TERMINAL, "xyz");
        Token t2 = new Token(TokenType.TERMINAL, "xyz");
        Token t3 = new Token(TokenType.TERMINAL, "xy".concat("z"));
        Token t4 = new Token(TokenType.NONTERMINAL, "xyz");
        Token t5 = new Token(TokenType.TERMINAL, "xyzz");
        
        assertEquals(t1, t2);
        assertEquals(t1, t3);
        assertFalse(t1.equals(t4));
        assertFalse(t1.equals(t5));
        assertFalse(t1.equals("xyz"));
        assertFalse(t1.equals(null));
    }
}
