package de.ks.idnadrev.cost.pattern; import de.ks.LauncherRunner; import de.ks.idnadrev.cost.pattern.view.BookingPatternParser; import de.ks.idnadrev.entity.Cleanup; import de.ks.idnadrev.entity.cost.BookingPattern; import de.ks.persistence.PersistentWork; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; import static org.junit.Assert.*; @RunWith(LauncherRunner.class) public class BookingPatternParserTest { private static final Logger log = LoggerFactory.getLogger(BookingPatternParserTest.class); @Inject BookingPatternParser parser; @Inject Cleanup cleanup; @Before public void setUp() throws Exception { cleanup.cleanup(); PersistentWork.persist(new BookingPattern("test").setCategory("category1").setRegex("bla").setSimpleContains(true)); } @Test public void testBookingParser() throws Exception { assertNull(parser.parseLine("blubb")); assertNotNull(parser.parseLine("bla")); assertEquals("category1", parser.parseLine("bla")); log.info("addding 2nd pattern"); PersistentWork.persist(new BookingPattern("test2").setCategory("hello").setRegex("blubb").setSimpleContains(true)); assertNotNull(parser.parseLine("blubb")); assertEquals("hello", parser.parseLine("blubb")); PersistentWork.deleteAllOf(BookingPattern.class); PersistentWork.persist(new BookingPattern("test").setCategory("category1").setRegex("bla").setSimpleContains(true)); log.info("removing 2nd pattern"); assertNull(parser.parseLine("blubb")); assertNotNull(parser.parseLine("bla")); log.info("Updating existing pattern"); PersistentWork.wrap(() -> { PersistentWork.forName(BookingPattern.class, "test").setCategory("sauerland"); }); assertEquals("sauerland", parser.parseLine("bla")); log.info("nothing changed"); assertEquals("sauerland", parser.parseLine("bla")); } }