package org.example.oo;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class EntityXTest {
	private EntityX testEntityX ;
	
	@Before
	public void setup() {
		testEntityX = new EntityX();
	}

	@Test(expected=IllegalArgumentException.class)
	public void testNullName() {
		testEntityX.setName(null);
	}
	
	@Test(expected=IllegalArgumentException.class)
	public void testEmptyName() {
		testEntityX.setName("   ");
	}
	
	@Test(expected=IllegalArgumentException.class)
	public void testTooLongName() {
		testEntityX.setName("abcdefghijklmnopqrstuvwxyz");
	}
	
	@Test 
	public void testValidName() {
		testEntityX.setName("Jonathan");
	}
	
	@Test 
	public void testInitialName() {
		// there are 3 steps to test data value
		// arrange
		String expectedName = "Jonathan";
		
		// act
		String actualName = testEntityX.getName();
		
		// assert
		assertEquals(expectedName, actualName);
	}

}
