package com.github.mongobee.utils; import com.github.mongobee.changeset.ChangeEntry; import com.github.mongobee.test.changelogs.AnotherMongobeeTestResource; import com.github.mongobee.test.changelogs.MongobeeTestResource; import junit.framework.Assert; import org.junit.Test; import java.lang.reflect.Method; import java.util.List; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; /** * @author lstolowski * @since 27/07/2014 */ public class ChangeServiceTest { @Test public void shouldFindChangeLogClasses(){ // given String scanPackage = MongobeeTestResource.class.getPackage().getName(); ChangeService service = new ChangeService(scanPackage); // when List<Class<?>> foundClasses = service.fetchChangeLogs(); // then assertTrue(foundClasses != null && foundClasses.size() > 0); } @Test public void shouldFindChangeSetMethods(){ // given String scanPackage = MongobeeTestResource.class.getPackage().getName(); ChangeService service = new ChangeService(scanPackage); // when List<Method> foundMethods = service.fetchChangeSets(MongobeeTestResource.class); // then assertTrue(foundMethods != null && foundMethods.size() == 5); } @Test public void shouldFindIsRunAlwaysMethod(){ // given String scanPackage = MongobeeTestResource.class.getPackage().getName(); ChangeService service = new ChangeService(scanPackage); // when List<Method> foundMethods = service.fetchChangeSets(AnotherMongobeeTestResource.class); // then for (Method foundMethod : foundMethods) { if (foundMethod.getName().equals("testChangeSetWithAlways")){ assertTrue(service.isRunAlwaysChangeSet(foundMethod)); } else { assertFalse(service.isRunAlwaysChangeSet(foundMethod)); } } assertTrue(foundMethods != null && foundMethods.size() == 6); } @Test public void shouldCreateEntry(){ // given String scanPackage = MongobeeTestResource.class.getPackage().getName(); ChangeService service = new ChangeService(scanPackage); List<Method> foundMethods = service.fetchChangeSets(MongobeeTestResource.class); for (Method foundMethod : foundMethods) { // when ChangeEntry entry = service.createChangeEntry(foundMethod); // then Assert.assertEquals("testuser", entry.getAuthor()); Assert.assertEquals(MongobeeTestResource.class.getName(), entry.getChangeLogClass()); Assert.assertNotNull(entry.getTimestamp()); Assert.assertNotNull(entry.getChangeId()); Assert.assertNotNull(entry.getChangeSetMethodName()); } } }