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(classes=TestConfig.class,
initializers={com.xebialabs.xlrelease.spring.configuration.XlrWebApplicationInitializer.class,com.xebialabs.xlrelease.spring.configuration.XlrBooterInitializer.class})
@WebAppConfiguration("src/test/resources")
@ActiveProfiles("integrationTest")
public abstract class XLReleaseIntegrationTest
extends com.xebialabs.deployit.plumbing.XLReleaseTest
implements org.springframework.context.ApplicationContextAware
This is a base class for JUnit integration tests of XL Release. Inheritors of this class
can define
Autowired XL 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 -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.springframework.context.ApplicationContextprotected com.xebialabs.xlrelease.db.ArchivedReleasesprotected com.xebialabs.xlrelease.service.ArchivingServiceSome CIs can not be created inside the @{directory} which is deleted automatically.com.xebialabs.xlrelease.repository.CommentRepositoryprotected com.xebialabs.xlrelease.repository.ConfigurationRepositorycom.xebialabs.xlrelease.service.ConfigurationServicecom.xebialabs.xlrelease.service.FacetServiceprotected List<com.xebialabs.xlrelease.service.FeatureService> com.xebialabs.xlrelease.repository.sql.persistence.FolderPersistencecom.xebialabs.xlrelease.service.FolderServicecom.xebialabs.xlrelease.repository.GateConditionRepositorycom.xebialabs.deployit.security.PermissionEditorcom.xebialabs.xlrelease.security.sql.snapshots.service.PermissionsSnapshotServicecom.xebialabs.xlrelease.repository.PhaseRepositorycom.xebialabs.xlrelease.repository.PlanItemRepositoryprotected com.xebialabs.xlrelease.actors.utils.ReleaseActorLifecycleUtilscom.xebialabs.xlrelease.repository.ReleaseRepositorycom.xebialabs.xlrelease.service.ReleaseServiceprotected org.springframework.jdbc.core.JdbcTemplatestatic final org.springframework.test.context.junit4.rules.SpringClassRulefinal org.springframework.test.context.junit4.rules.SpringMethodRulecom.xebialabs.xlrelease.service.TeamServiceorg.junit.rules.TestNameprotected com.xebialabs.xlrelease.actors.utils.TriggerActorLifecycleUtilscom.xebialabs.xlrelease.repository.TriggerRepositoryprotected org.springframework.transaction.PlatformTransactionManagercom.xebialabs.xlrelease.repository.UserProfileRepositorycom.xebialabs.xlrelease.repository.UserTokenRepositorycom.xebialabs.xlrelease.service.UserTokenService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncom.xebialabs.xlrelease.domain.ReleasearchiveRelease(com.xebialabs.xlrelease.domain.Release release) voidbefore()List<ch.qos.logback.classic.spi.ILoggingEvent> captureLogs(String... names) com.xebialabs.xlrelease.domain.folder.FoldercreateFolder(com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel) com.xebialabs.xlrelease.domain.folder.FoldercreateFolder(String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder) com.xebialabs.xlrelease.domain.folder.FoldercreateFolder(String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel) createRole(String roleName) createRole(String roleName, List<String> principals) voidcreateTask(com.xebialabs.xlrelease.domain.Task task) intdeleteFromArchive(String releaseId) protected voiddeleteOnTearDown(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items) protected voiddeleteOnTearDown(String... ids) voiddeleteOrder(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items) voiddeleteRelease(String releaseId) voiddeleteRelease(String... releaseIds) voiddeleteRelease(List<String> releaseIds) com.xebialabs.xlrelease.events.XLReleaseEventBuseventBus()protected booleanorg.springframework.context.ApplicationContextcom.xebialabs.xlrelease.domain.GateConditiongetGateCondition(String conditionId) com.xebialabs.xlrelease.domain.Phasecom.xebialabs.xlrelease.domain.PlanItemgetPlanItem(String planItemId) com.xebialabs.xlrelease.domain.ReleasegetRelease(String releaseId) <T extends com.xebialabs.xlrelease.domain.Task>
Tcom.xebialabs.xlrelease.domain.variables.VariablegetVariable(String variableId) voidgrantGlobalPermissions(String username, Set<com.xebialabs.deployit.security.permission.Permission> permissions) com.xebialabs.xlrelease.domain.ReleaseinsertArchivedRelease(com.xebialabs.xlrelease.domain.Release release, String releaseJson, String activityLogs) protected booleanvoidmarkForDeletion(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem item) voidmarkForDeletion(com.xebialabs.xlrelease.domain.Team team) voidmarkForDeletion(String ciId) com.xebialabs.xlrelease.domain.ReleasepreArchiveAndArchiveRelease(com.xebialabs.xlrelease.domain.Release release) <T extends AutoCloseable>
TregisterCloseable(T closeable) voidvoidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) voidvoidstoreChanges(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) Safe method to store Release objects including of status TEMPLATE.voidstoreRelease(com.xebialabs.xlrelease.domain.Release... releases) com.xebialabs.xlrelease.domain.ReleasestoreRelease(com.xebialabs.xlrelease.domain.Release release, XLReleaseIntegrationTest.DeleteOption... deleteOptions) Safe method to store Release objects including of status TEMPLATE.voidstoreRelease(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) Not a safe method to store Release objects of status TEMPLATE - the ID will change.com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions) Not a safe method to store Release objects of status TEMPLATE - the ID will change.com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.Release releaseData) Not a safe method to store Release objects of status TEMPLATE - the ID will change.com.xebialabs.xlrelease.domain.ReleasestoreTemplate(com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions) Not a safe method to store Release objects of status TEMPLATE - the ID will change.com.xebialabs.xlrelease.domain.ReleaseTriggerstoreTrigger(com.xebialabs.xlrelease.domain.ReleaseTrigger trigger) com.xebialabs.xlrelease.domain.TriggerstoreTrigger(com.xebialabs.xlrelease.domain.Trigger trigger) voidtearDown()voidvoidupdatePhase(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 voidprotected voidprotected voidprotected booleanMethods inherited from class com.xebialabs.deployit.plumbing.XLReleaseTest
boot, setInternalState
-
Field Details
-
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
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
-
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
-
configurationRepository
@Autowired protected com.xebialabs.xlrelease.repository.ConfigurationRepository configurationRepository -
featureServices
@Autowired(required=false) protected 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
-
-
Constructor Details
-
XLReleaseIntegrationTest
public XLReleaseIntegrationTest()
-
-
Method Details
-
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
-
eventBus
public com.xebialabs.xlrelease.events.XLReleaseEventBus eventBus() -
before
public void before() -
tearDown
- Throws:
Exception
-
verifyRepositoryClean
protected void verifyRepositoryClean() -
verifyWorkdirClean
protected void verifyWorkdirClean() -
deleteOnTearDown
protected void deleteOnTearDown(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items) -
deleteOnTearDown
-
markForDeletion
public void markForDeletion(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem item) -
markForDeletion
-
markForDeletion
public void markForDeletion(com.xebialabs.xlrelease.domain.Team team) -
unmarkForDeletion
-
deleteOrder
public void deleteOrder(com.xebialabs.deployit.plugin.api.udm.ConfigurationItem... items) -
deleteRelease
-
deleteRelease
-
deleteRelease
-
storeRelease
public void storeRelease(com.xebialabs.xlrelease.domain.Release... releases) -
storeRelease
-
insertArchivedRelease
-
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
-
storeChanges
public void storeChanges(com.xebialabs.xlrelease.domain.Changes changes) -
getTask
-
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
-
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) Safe method to store Release objects including of status TEMPLATE.- Parameters:
release-- Returns:
- See Also:
-
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) Safe method to store Release objects including of status TEMPLATE.- Parameters:
release-- Returns:
- See Also:
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.Release releaseData) Not a safe method to store Release objects of status TEMPLATE - the ID will change.- Parameters:
releaseData-- Returns:
- See Also:
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions) Not a safe method to store Release objects of status TEMPLATE - the ID will change.- Parameters:
releaseData-- Returns:
- See Also:
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData) Not a safe method to store Release objects of status TEMPLATE - the ID will change.- Parameters:
releaseData-- Returns:
- See Also:
-
storeTemplate
public com.xebialabs.xlrelease.domain.Release storeTemplate(com.xebialabs.xlrelease.domain.folder.Folder parentFolder, com.xebialabs.xlrelease.domain.Release releaseData, XLReleaseIntegrationTest.DeleteOption... deleteOptions) Not a safe method to store Release objects of status TEMPLATE - the ID will change.- Parameters:
releaseData-- Returns:
- See Also:
-
storeConfiguration
public <T extends com.xebialabs.xlrelease.domain.BaseConfiguration> T storeConfiguration(T configurationItem) -
getVariable
-
getRelease
-
getGateCondition
-
getPlanItem
-
createRole
-
createRole
-
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(String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder) -
createFolder
public com.xebialabs.xlrelease.domain.folder.Folder createFolder(String parentId, com.xebialabs.xlrelease.domain.folder.Folder folder, boolean createDefaultTeamsIfTopLevel) -
encrypt
-
registerCloseable
-
withAdmin
-
captureLogs
-
grantGlobalPermissions
-
setSmallTaskTimeouts
public void setSmallTaskTimeouts() -
resetTaskTimeouts
public void resetTaskTimeouts()
-