Package com.xebialabs.xlrelease
Class XLReleaseIntegrationTest
- java.lang.Object
-
- com.xebialabs.deployit.plumbing.XLReleaseTest
-
- com.xebialabs.xlrelease.XLReleaseIntegrationTest
-
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware
- Direct Known Subclasses:
BaseApiDocumentationTest
@ContextConfiguration(locations={"/spring/xlrelease-context-test.xml","classpath:springmvc-resteasy.xml"}, initializers=com.xebialabs.xlrelease.spring.configuration.XlrWebApplicationInitializer.class) @WebAppConfiguration("src/test/resources") @ActiveProfiles("integrationTest") public abstract class XLReleaseIntegrationTest extends com.xebialabs.deployit.plumbing.XLReleaseTest implements org.springframework.context.ApplicationContextAwareThis is a base class for JUnit integration tests of XL Release. Inheritors of this class can defineAutowiredXL Release services in fields and use them to setup a test environment and assert conditions.A typical test would look like this:
public class MyIntegrationTest extends XLReleaseIntegrationTest { @Test public void should_create_release_in_repository() { Release release = ReleaseBuilder.newRelease().withId(TestIds.RELEASE1).build(); storeRelease(release); assertThat(getRelease(TestIds.RELEASE1)).isNotNull(); } }Note: A test instance of XL Release is setup in a temporary folder and has some services mocked up for speed and easier testing. So you cannot test initializers or upgraders, for example.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classXLReleaseIntegrationTest.DeleteOption
-
Field Summary
Fields Modifier and Type Field Description protected org.springframework.context.ApplicationContextapplicationContextprotected com.xebialabs.xlrelease.db.ArchivedReleasesarchivedReleasesprotected com.xebialabs.xlrelease.service.ArchivingServicearchivingServiceprotected java.util.List<java.lang.String>cisForDeletionSome CIs can not be created inside the @{directory} which is deleted automatically.com.xebialabs.xlrelease.repository.CommentRepositorycommentRepositoryprotected com.xebialabs.xlrelease.repository.ConfigurationRepositoryconfigurationRepositorycom.xebialabs.xlrelease.service.ConfigurationServiceconfigurationServiceEventuallyeventuallycom.xebialabs.xlrelease.service.FacetServicefacetServiceprotected java.util.List<com.xebialabs.xlrelease.service.FeatureService>featureServicescom.xebialabs.xlrelease.repository.sql.persistence.FolderPersistencefolderPersistencecom.xebialabs.xlrelease.service.FolderServicefolderServicecom.xebialabs.xlrelease.repository.GateConditionRepositorygateConditionRepositorycom.xebialabs.deployit.security.PermissionEditorpermissionEditorcom.xebialabs.xlrelease.security.sql.snapshots.service.PermissionsSnapshotServicepermissionsSnapshotServicecom.xebialabs.xlrelease.repository.PhaseRepositoryphaseRepositorycom.xebialabs.xlrelease.repository.PlanItemRepositoryplanItemRepositoryprotected com.xebialabs.xlrelease.actors.utils.ReleaseActorLifecycleUtilsreleaseActorLifecycleUtilscom.xebialabs.xlrelease.repository.ReleaseRepositoryreleaseRepositorycom.xebialabs.xlrelease.service.ReleaseServicereleaseServiceprotected org.springframework.jdbc.core.JdbcTemplatereportingJdbcTemplatestatic org.springframework.test.context.junit4.rules.SpringClassRuleSPRING_CLASS_RULEorg.springframework.test.context.junit4.rules.SpringMethodRulespringMethodRuleStorageFacadestorageFacadecom.xebialabs.xlrelease.service.TeamServiceteamServiceorg.junit.rules.TestNametestNameprotected com.xebialabs.xlrelease.actors.utils.TriggerActorLifecycleUtilstriggerActorLifecycleUtilscom.xebialabs.xlrelease.repository.TriggerRepositorytriggerRepositoryprotected org.springframework.transaction.PlatformTransactionManagertxManagercom.xebialabs.xlrelease.repository.UserProfileRepositoryuserProfileRepositorycom.xebialabs.xlrelease.repository.UserTokenRepositoryuserTokenRepositorycom.xebialabs.xlrelease.service.UserTokenServiceuserTokenService
-
Constructor Summary
Constructors Constructor Description XLReleaseIntegrationTest()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description com.xebialabs.xlrelease.domain.ReleasearchiveRelease(com.xebialabs.xlrelease.domain.Release release)voidbefore()java.util.List<ch.qos.logback.classic.spi.ILoggingEvent>captureLogs(java.lang.String... names)com.xebialabs.xlrelease.domain.folder.FoldercreateFolder(com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel)com.xebialabs.xlrelease.domain.folder.FoldercreateFolder(java.lang.String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder)com.xebialabs.xlrelease.domain.folder.FoldercreateFolder(java.lang.String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel)java.lang.StringcreateRole(java.lang.String roleName)java.lang.StringcreateRole(java.lang.String roleName, java.util.List<java.lang.String> principals)voidcreateTask(com.xebialabs.xlrelease.domain.Task task)intdeleteFromArchive(java.lang.String releaseId)protected voiddeleteOnTearDown(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items)protected voiddeleteOnTearDown(java.lang.String... ids)voiddeleteOrder(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items)voiddeleteRelease(java.lang.String releaseId)voiddeleteRelease(java.lang.String... releaseIds)voiddeleteRelease(java.lang.String releaseId, java.lang.Boolean cleanActivityLog)voiddeleteRelease(java.util.List<java.lang.String> releaseIds)java.lang.Stringencrypt(java.lang.String password)com.xebialabs.xlrelease.events.XLReleaseEventBuseventBus()protected booleanfeatureServicesEnabled()org.springframework.context.ApplicationContextgetApplicationContext()java.util.List<java.lang.String>getCisForDeletion()com.xebialabs.xlrelease.domain.GateConditiongetGateCondition(java.lang.String conditionId)com.xebialabs.xlrelease.domain.PhasegetPhase(java.lang.String phaseId)com.xebialabs.xlrelease.domain.PlanItemgetPlanItem(java.lang.String planItemId)com.xebialabs.xlrelease.domain.ReleasegetRelease(java.lang.String releaseId)<T extends com.xebialabs.xlrelease.domain.Task>
TgetTask(java.lang.String taskId)com.xebialabs.xlrelease.domain.variables.VariablegetVariable(java.lang.String variableId)voidgrantGlobalPermissions(java.lang.String username, java.util.Set<com.xebialabs.deployit.security.permission.Permission> permissions)com.xebialabs.xlrelease.domain.ReleaseinsertArchivedRelease(com.xebialabs.xlrelease.domain.Release release, java.lang.String releaseJson, java.lang.String activityLogs)protected booleanisRelaxedTest()voidmarkForDeletion(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem item)voidmarkForDeletion(com.xebialabs.xlrelease.domain.Team team)voidmarkForDeletion(java.lang.String ciId)com.xebialabs.xlrelease.domain.ReleasepreArchiveAndArchiveRelease(com.xebialabs.xlrelease.domain.Release release)<T extends java.lang.AutoCloseable>
TregisterCloseable(T closeable)voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext)voidstoreChanges(com.xebialabs.xlrelease.domain.Changes changes)<T extends com.xebialabs.xlrelease.domain.BaseConfiguration>
TstoreConfiguration(T configurationItem)com.xebialabs.xlrelease.domain.ReleasestoreRelease(com.xebialabs.xlrelease.domain.Release release)voidstoreRelease(com.xebialabs.xlrelease.domain.Release... releases)com.xebialabs.xlrelease.domain.ReleasestoreRelease(com.xebialabs.xlrelease.domain.Release release, XLReleaseIntegrationTest.DeleteOption... deleteOptions)voidstoreRelease(java.util.List<com.xebialabs.xlrelease.domain.Release> releases)com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData)com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions)com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.Release releaseData)com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions)com.xebialabs.xlrelease.domain.ReleaseTriggerstoreTrigger(com.xebialabs.xlrelease.domain.ReleaseTrigger trigger)com.xebialabs.xlrelease.domain.TriggerstoreTrigger(com.xebialabs.xlrelease.domain.Trigger trigger)voidtearDown()voidunmarkForDeletion(java.lang.String id)voidupdatePhase(com.xebialabs.xlrelease.domain.Phase phase)voidupdateRelease(com.xebialabs.xlrelease.domain.Release release)voidupdateTask(com.xebialabs.xlrelease.domain.Task task)voidupdateTaskProperty(com.xebialabs.xlrelease.domain.Task task)protected voidverifyRepositoryClean()protected voidverifyWorkdirClean()protected voidwithAdmin(java.util.concurrent.Callable<java.lang.Void> callable)protected booleanworkDirVerificationEnabled()
-
-
-
Field Detail
-
applicationContext
protected org.springframework.context.ApplicationContext applicationContext
-
SPRING_CLASS_RULE
public static final org.springframework.test.context.junit4.rules.SpringClassRule SPRING_CLASS_RULE
-
springMethodRule
public final org.springframework.test.context.junit4.rules.SpringMethodRule springMethodRule
-
cisForDeletion
protected java.util.List<java.lang.String> cisForDeletion
Some CIs can not be created inside the @{directory} which is deleted automatically. Those should be added to this collection to be purged after the test.
-
folderService
@Autowired public com.xebialabs.xlrelease.service.FolderService folderService
-
gateConditionRepository
@Autowired public com.xebialabs.xlrelease.repository.GateConditionRepository gateConditionRepository
-
commentRepository
@Autowired public com.xebialabs.xlrelease.repository.CommentRepository commentRepository
-
configurationService
@Autowired public com.xebialabs.xlrelease.service.ConfigurationService configurationService
-
releaseService
@Autowired public com.xebialabs.xlrelease.service.ReleaseService releaseService
-
releaseRepository
@Autowired public com.xebialabs.xlrelease.repository.ReleaseRepository releaseRepository
-
triggerRepository
@Autowired public com.xebialabs.xlrelease.repository.TriggerRepository triggerRepository
-
phaseRepository
@Autowired public com.xebialabs.xlrelease.repository.PhaseRepository phaseRepository
-
planItemRepository
@Autowired public com.xebialabs.xlrelease.repository.PlanItemRepository planItemRepository
-
userProfileRepository
@Autowired public com.xebialabs.xlrelease.repository.UserProfileRepository userProfileRepository
-
eventually
@Autowired public Eventually eventually
-
teamService
@Autowired public com.xebialabs.xlrelease.service.TeamService teamService
-
permissionsSnapshotService
@Autowired public com.xebialabs.xlrelease.security.sql.snapshots.service.PermissionsSnapshotService permissionsSnapshotService
-
facetService
@Autowired public com.xebialabs.xlrelease.service.FacetService facetService
-
folderPersistence
@Autowired public com.xebialabs.xlrelease.repository.sql.persistence.FolderPersistence folderPersistence
-
permissionEditor
@Autowired public com.xebialabs.deployit.security.PermissionEditor permissionEditor
-
releaseActorLifecycleUtils
@Autowired protected com.xebialabs.xlrelease.actors.utils.ReleaseActorLifecycleUtils releaseActorLifecycleUtils
-
triggerActorLifecycleUtils
@Autowired protected com.xebialabs.xlrelease.actors.utils.TriggerActorLifecycleUtils triggerActorLifecycleUtils
-
archivedReleases
@Autowired protected com.xebialabs.xlrelease.db.ArchivedReleases archivedReleases
-
archivingService
@Autowired protected com.xebialabs.xlrelease.service.ArchivingService archivingService
-
storageFacade
@Autowired public StorageFacade storageFacade
-
configurationRepository
@Autowired protected com.xebialabs.xlrelease.repository.ConfigurationRepository configurationRepository
-
featureServices
@Autowired(required=false) protected java.util.List<com.xebialabs.xlrelease.service.FeatureService> featureServices
-
txManager
@Qualifier("xlrRepositoryTransactionManager") @Autowired protected org.springframework.transaction.PlatformTransactionManager txManager
-
reportingJdbcTemplate
@Qualifier("reportingJdbcTemplate") @Autowired protected org.springframework.jdbc.core.JdbcTemplate reportingJdbcTemplate
-
userTokenService
@Autowired public com.xebialabs.xlrelease.service.UserTokenService userTokenService
-
userTokenRepository
@Autowired public com.xebialabs.xlrelease.repository.UserTokenRepository userTokenRepository
-
testName
public org.junit.rules.TestName testName
-
-
Method Detail
-
getApplicationContext
public org.springframework.context.ApplicationContext getApplicationContext()
-
setApplicationContext
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
- Specified by:
setApplicationContextin interfaceorg.springframework.context.ApplicationContextAware
-
featureServicesEnabled
protected boolean featureServicesEnabled()
-
isRelaxedTest
protected boolean isRelaxedTest()
-
workDirVerificationEnabled
protected boolean workDirVerificationEnabled()
-
getCisForDeletion
public java.util.List<java.lang.String> getCisForDeletion()
-
eventBus
public com.xebialabs.xlrelease.events.XLReleaseEventBus eventBus()
-
before
public void before()
-
tearDown
public void tearDown() throws java.lang.Exception- Throws:
java.lang.Exception
-
verifyRepositoryClean
protected void verifyRepositoryClean()
-
verifyWorkdirClean
protected void verifyWorkdirClean()
-
deleteOnTearDown
protected void deleteOnTearDown(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items)
-
deleteOnTearDown
protected void deleteOnTearDown(java.lang.String... ids)
-
markForDeletion
public void markForDeletion(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem item)
-
markForDeletion
public void markForDeletion(java.lang.String ciId)
-
markForDeletion
public void markForDeletion(com.xebialabs.xlrelease.domain.Team team)
-
unmarkForDeletion
public void unmarkForDeletion(java.lang.String id)
-
deleteOrder
public void deleteOrder(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items)
-
deleteRelease
public void deleteRelease(java.util.List<java.lang.String> releaseIds)
-
deleteRelease
public void deleteRelease(java.lang.String... releaseIds)
-
deleteRelease
public void deleteRelease(java.lang.String releaseId)
-
deleteRelease
public void deleteRelease(java.lang.String releaseId, java.lang.Boolean cleanActivityLog)
-
storeRelease
public void storeRelease(com.xebialabs.xlrelease.domain.Release... releases)
-
storeRelease
public void storeRelease(java.util.List<com.xebialabs.xlrelease.domain.Release> releases)
-
insertArchivedRelease
public com.xebialabs.xlrelease.domain.Release insertArchivedRelease(com.xebialabs.xlrelease.domain.Release release, java.lang.String releaseJson, java.lang.String activityLogs)
-
archiveRelease
public com.xebialabs.xlrelease.domain.Release archiveRelease(com.xebialabs.xlrelease.domain.Release release)
-
preArchiveAndArchiveRelease
public com.xebialabs.xlrelease.domain.Release preArchiveAndArchiveRelease(com.xebialabs.xlrelease.domain.Release release)
-
deleteFromArchive
public int deleteFromArchive(java.lang.String releaseId)
-
storeChanges
public void storeChanges(com.xebialabs.xlrelease.domain.Changes changes)
-
getTask
public <T extends com.xebialabs.xlrelease.domain.Task> T getTask(java.lang.String taskId)
-
createTask
public void createTask(com.xebialabs.xlrelease.domain.Task task)
-
updateTask
public void updateTask(com.xebialabs.xlrelease.domain.Task task)
-
updateTaskProperty
public void updateTaskProperty(com.xebialabs.xlrelease.domain.Task task)
-
getPhase
public com.xebialabs.xlrelease.domain.Phase getPhase(java.lang.String phaseId)
-
updatePhase
public void updatePhase(com.xebialabs.xlrelease.domain.Phase phase)
-
updateRelease
public void updateRelease(com.xebialabs.xlrelease.domain.Release release)
-
storeRelease
public com.xebialabs.xlrelease.domain.Release storeRelease(com.xebialabs.xlrelease.domain.Release release)
-
storeTrigger
public com.xebialabs.xlrelease.domain.Trigger storeTrigger(com.xebialabs.xlrelease.domain.Trigger trigger)
-
storeTrigger
public com.xebialabs.xlrelease.domain.ReleaseTrigger storeTrigger(com.xebialabs.xlrelease.domain.ReleaseTrigger trigger)
-
storeRelease
public com.xebialabs.xlrelease.domain.Release storeRelease(com.xebialabs.xlrelease.domain.Release release, XLReleaseIntegrationTest.DeleteOption... deleteOptions)
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.Release releaseData)
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions)
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData)
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions)
-
storeConfiguration
public <T extends com.xebialabs.xlrelease.domain.BaseConfiguration> T storeConfiguration(T configurationItem)
-
getVariable
public com.xebialabs.xlrelease.domain.variables.Variable getVariable(java.lang.String variableId)
-
getRelease
public com.xebialabs.xlrelease.domain.Release getRelease(java.lang.String releaseId)
-
getGateCondition
public com.xebialabs.xlrelease.domain.GateCondition getGateCondition(java.lang.String conditionId)
-
getPlanItem
public com.xebialabs.xlrelease.domain.PlanItem getPlanItem(java.lang.String planItemId)
-
createRole
public java.lang.String createRole(java.lang.String roleName)
-
createRole
public java.lang.String createRole(java.lang.String roleName, java.util.List<java.lang.String> principals)
-
createFolder
public com.xebialabs.xlrelease.domain.folder.Folder createFolder(com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel)
-
createFolder
public com.xebialabs.xlrelease.domain.folder.Folder createFolder(java.lang.String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder)
-
createFolder
public com.xebialabs.xlrelease.domain.folder.Folder createFolder(java.lang.String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel)
-
encrypt
public java.lang.String encrypt(java.lang.String password)
-
registerCloseable
public <T extends java.lang.AutoCloseable> T registerCloseable(T closeable)
-
withAdmin
protected void withAdmin(java.util.concurrent.Callable<java.lang.Void> callable)
-
captureLogs
public java.util.List<ch.qos.logback.classic.spi.ILoggingEvent> captureLogs(java.lang.String... names)
-
grantGlobalPermissions
public void grantGlobalPermissions(java.lang.String username, java.util.Set<com.xebialabs.deployit.security.permission.Permission> permissions)
-
-