package beaform.events;

import static org.junit.Assert.assertEquals;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import beaform.utilities.SystemTime;
import beaform.utilities.TimeSource;

public class StoreEventTest {

	@Before
	public void setup() {
		SystemTime.setTimeSource(new TimeSource() {
			private final long timeInMillis = 0;

			@Override
			public long getSystemTime() {
				return this.timeInMillis;
			}
		});
	}

	@After
	public void destroy() {
		SystemTime.reset();
	}

	@Test
	public void testEventString() {
		// Create a 'create' event for a new formula
		String name = "TestFormula";
		Event createEvent = new FormulaCreatedEvent(name);

		Date timestamp = SystemTime.getAsDate();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		// Check if the event converts to a string correctly
		// [timestamp] action properties
		assertEquals("[" + df.format(timestamp) + "] FormulaCreated " + name, createEvent.toEventString());
	}

}

@@ -859,16 +859,99 @@
 .SSS%22);%0A
+%09%09String expectedResult = %22%5B%22 + df.format(timestamp) + %22%5D FormulaCreated %22 + name;%0A
 %09%09// Che
@@ -1038,76 +1038,139 @@
 s%0A%09%09
-assertEquals(%22%5B%22 + df.format(timestamp) + %22%5D FormulaCreated %22 + name
+String assertMessageOnFail = %22Event format doesn't match with the expected one%22;%0A%09%09assertEquals(assertMessageOnFail, expectedResult
 , cr

Add a message for the failing assertion