diff options
author | donald.g.dunne | 2014-08-26 18:51:13 +0000 |
---|---|---|
committer | Roberto E. Escobar | 2014-10-01 21:04:20 +0000 |
commit | 8d8f0219c79d9e8f0366c062ed6e0291cd36985c (patch) | |
tree | 6dffd5cf43e65af1df79c38cafe8df9f4bddf386 /plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee | |
parent | dfe51d925a9804b57f5ec32664d298f9ad15df92 (diff) | |
download | org.eclipse.osee-8d8f0219c79d9e8f0366c062ed6e0291cd36985c.tar.gz org.eclipse.osee-8d8f0219c79d9e8f0366c062ed6e0291cd36985c.tar.xz org.eclipse.osee-8d8f0219c79d9e8f0366c062ed6e0291cd36985c.zip |
bug[ats_ATS33276]: Transitioning actions to completed errors on open branch
Change-Id: I34cf64312eadc4913f7fc2fc21ff3e74e5e953b0
Diffstat (limited to 'plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee')
5 files changed, 190 insertions, 16 deletions
diff --git a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/AllAtsCoreClientTestSuite.java b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/AllAtsCoreClientTestSuite.java index cb206e7a856..28d61180917 100644 --- a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/AllAtsCoreClientTestSuite.java +++ b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/AllAtsCoreClientTestSuite.java @@ -13,6 +13,7 @@ package org.eclipse.osee.ats.core.client; import org.eclipse.osee.ats.core.client.internal.config.InternalConfigTestSuite; import org.eclipse.osee.ats.core.client.internal.store.InternalStoreTestSuite; import org.eclipse.osee.ats.core.client.review.ReviewTestSuite; +import org.eclipse.osee.ats.core.client.validator.ValidatorTestSuite; import org.junit.runner.RunWith; import org.junit.runners.Suite; @@ -20,7 +21,11 @@ import org.junit.runners.Suite; * @author Donald G. Dunne */ @RunWith(Suite.class) -@Suite.SuiteClasses({InternalConfigTestSuite.class, InternalStoreTestSuite.class, ReviewTestSuite.class}) +@Suite.SuiteClasses({ + InternalConfigTestSuite.class, + InternalStoreTestSuite.class, + ReviewTestSuite.class, + ValidatorTestSuite.class}) public class AllAtsCoreClientTestSuite { // Test Suite } diff --git a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/defect/AtsXDefectValidatorTest.java b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/defect/AtsXDefectValidatorTest.java index 5bd50167b4e..7c934ecdea9 100644 --- a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/defect/AtsXDefectValidatorTest.java +++ b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/defect/AtsXDefectValidatorTest.java @@ -12,7 +12,7 @@ package org.eclipse.osee.ats.core.client.review.defect; import java.util.Arrays; import java.util.Date; -import org.junit.Assert; +import org.eclipse.osee.ats.api.IAtsServices; import org.eclipse.osee.ats.api.workdef.StateType; import org.eclipse.osee.ats.api.workdef.WidgetOption; import org.eclipse.osee.ats.api.workdef.WidgetResult; @@ -23,6 +23,7 @@ import org.eclipse.osee.ats.core.client.review.defect.ReviewDefectItem.Severity; import org.eclipse.osee.ats.mocks.MockStateDefinition; import org.eclipse.osee.ats.mocks.MockWidgetDefinition; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; +import org.junit.Assert; /** * Test unit for {@link AtsXDefectValidator} @@ -30,6 +31,7 @@ import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; * @author Donald G. Dunne */ public class AtsXDefectValidatorTest { + private IAtsServices atsServices; @org.junit.Test public void testValidateTransition() throws OseeCoreException { @@ -45,18 +47,23 @@ public class AtsXDefectValidatorTest { // Valid for anything not XDefectViewer WidgetResult result = - validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef); + validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef, + atsServices); ValidatorTestUtil.assertValidResult(result); widgetDef.setXWidgetName("XDefectViewer"); - result = validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef); + result = + validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef, + atsServices); ValidatorTestUtil.assertValidResult(result); widgetDef.getOptions().add(WidgetOption.REQUIRED_FOR_TRANSITION); // Reviews do not require Defects to be entered, even if required for transition - result = validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef); + result = + validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef, + atsServices); Assert.assertEquals(WidgetStatus.Valid, result.getStatus()); } @@ -76,14 +83,15 @@ public class AtsXDefectValidatorTest { MockDefectValueProvider itemValueProvider = new MockDefectValueProvider(Arrays.asList(item)); // Valid defect - WidgetResult result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef); + WidgetResult result = + validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef, atsServices); Assert.assertEquals(WidgetStatus.Valid, result.getStatus()); // Invalid Severity item = getValidItem(); item.setSeverity(Severity.None); itemValueProvider = new MockDefectValueProvider(Arrays.asList(item)); - result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef); + result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef, atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(ReviewDefectError.AllItemsMustBeMarkedAndClosed.getError(), result.getDetails()); @@ -91,7 +99,7 @@ public class AtsXDefectValidatorTest { item = getValidItem(); item.setDisposition(Disposition.None); itemValueProvider = new MockDefectValueProvider(Arrays.asList(item)); - result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef); + result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef, atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(ReviewDefectError.AllItemsMustBeMarkedAndClosed.getError(), result.getDetails()); @@ -99,7 +107,7 @@ public class AtsXDefectValidatorTest { item = getValidItem(); item.setClosed(false); itemValueProvider = new MockDefectValueProvider(Arrays.asList(item)); - result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef); + result = validator.validateTransition(itemValueProvider, widgetDef, fromStateDef, toStateDef, atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(ReviewDefectError.AllItemsMustBeMarkedAndClosed.getError(), result.getDetails()); diff --git a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/role/AtsXUserRoleValidatorTest.java b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/role/AtsXUserRoleValidatorTest.java index 5308dd161eb..cff3480729e 100644 --- a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/role/AtsXUserRoleValidatorTest.java +++ b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/review/role/AtsXUserRoleValidatorTest.java @@ -12,7 +12,7 @@ package org.eclipse.osee.ats.core.client.review.role; import java.util.Arrays; import java.util.List; -import org.junit.Assert; +import org.eclipse.osee.ats.api.IAtsServices; import org.eclipse.osee.ats.api.review.Role; import org.eclipse.osee.ats.api.review.UserRole; import org.eclipse.osee.ats.api.workdef.StateType; @@ -23,11 +23,13 @@ import org.eclipse.osee.ats.core.client.review.defect.ValidatorTestUtil; import org.eclipse.osee.ats.mocks.MockStateDefinition; import org.eclipse.osee.ats.mocks.MockWidgetDefinition; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; +import org.junit.Assert; /** * @author Donald G. Dunne */ public class AtsXUserRoleValidatorTest { + private IAtsServices atsServices; @org.junit.Test public void testValidateTransition() throws OseeCoreException { @@ -43,20 +45,25 @@ public class AtsXUserRoleValidatorTest { // Valid for anything not XIntegerDam WidgetResult result = - validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef); + validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef, + atsServices); ValidatorTestUtil.assertValidResult(result); widgetDef.setXWidgetName("XUserRoleViewer"); // Not valid to have no roles - result = validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef); + result = + validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef, + atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(UserRoleError.OneRoleEntryRequired.getError(), result.getDetails()); widgetDef.getOptions().add(WidgetOption.REQUIRED_FOR_TRANSITION); // Not valid to have no roles - result = validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef); + result = + validator.validateTransition(ValidatorTestUtil.emptyValueProvider, widgetDef, fromStateDef, toStateDef, + atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(UserRoleError.OneRoleEntryRequired.getError(), result.getDetails()); } @@ -80,20 +87,20 @@ public class AtsXUserRoleValidatorTest { MockUserRoleValueProvider provider = new MockUserRoleValueProvider(roles); // Valid Roles - WidgetResult result = validator.validateTransition(provider, widgetDef, fromStateDef, toStateDef); + WidgetResult result = validator.validateTransition(provider, widgetDef, fromStateDef, toStateDef, atsServices); ValidatorTestUtil.assertValidResult(result); // Not valid to have no author roles = Arrays.asList(reviewer); provider = new MockUserRoleValueProvider(roles); - result = validator.validateTransition(provider, widgetDef, fromStateDef, toStateDef); + result = validator.validateTransition(provider, widgetDef, fromStateDef, toStateDef, atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(UserRoleError.MustHaveAtLeastOneAuthor.getError(), result.getDetails()); // Not valid to have no reviewer roles = Arrays.asList(author); provider = new MockUserRoleValueProvider(roles); - result = validator.validateTransition(provider, widgetDef, fromStateDef, toStateDef); + result = validator.validateTransition(provider, widgetDef, fromStateDef, toStateDef, atsServices); Assert.assertEquals(WidgetStatus.Invalid_Incompleted, result.getStatus()); Assert.assertEquals(UserRoleError.MustHaveAtLeastOneReviewer.getError(), result.getDetails()); diff --git a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/validator/AtsXCommitManagerValidatorTest.java b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/validator/AtsXCommitManagerValidatorTest.java new file mode 100644 index 00000000000..c222341e7aa --- /dev/null +++ b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/validator/AtsXCommitManagerValidatorTest.java @@ -0,0 +1,130 @@ +/******************************************************************************* + * Copyright (c) 2014 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.ats.core.client.validator; + +import static org.mockito.Mockito.when; +import org.eclipse.osee.ats.api.workdef.IAtsWidgetDefinition; +import org.eclipse.osee.ats.api.workdef.RuleDefinitionOption; +import org.eclipse.osee.ats.api.workdef.WidgetResult; +import org.eclipse.osee.ats.core.validator.IValueProvider; +import org.eclipse.osee.ats.mocks.AtsMockitoTest; +import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; + +/** + * @author Donald G. Dunne + */ +public class AtsXCommitManagerValidatorTest extends AtsMockitoTest { + + public AtsXCommitManagerValidatorTest() { + super("AtsXCommitManagerValidatorTest"); + } + + // @formatter:off + @Mock IAtsWidgetDefinition widgetDef; + @Mock IAtsWidgetDefinition notXCommitManagerWidget; + @Mock ArtifactValueProvider provider; + @Mock IValueProvider notArtifactValueProvider; + // @formatter:on + + @Override + @Before + public void setup() throws OseeCoreException { + super.setup(); + + when(widgetDef.getXWidgetName()).thenReturn("XCommitManager"); + when(widgetDef.getName()).thenReturn("Commit Manager"); + when(implement.hasRule(RuleDefinitionOption.AllowTransitionWithWorkingBranch.name())).thenReturn(false); + } + + @Test + public void testValidateTransition_notCommitManager() { + AtsXCommitManagerValidator validator = new AtsXCommitManagerValidator(); + + WidgetResult result = validator.validateTransition(null, notXCommitManagerWidget, null, null, null); + Assert.assertEquals(WidgetResult.Valid, result); + + result = validator.validateTransition(notArtifactValueProvider, widgetDef, null, null, atsServices); + Assert.assertEquals(WidgetResult.Valid, result); + + when(provider.getObject()).thenReturn(task1); + result = validator.validateTransition(provider, widgetDef, null, null, atsServices); + Assert.assertEquals(WidgetResult.Valid, result); + + } + + @Test + public void testValidateTransition_noChangesToCommit() { + AtsXCommitManagerValidator validator = new AtsXCommitManagerValidator(); + + when(provider.getObject()).thenReturn(teamWf); + when(branchService.isWorkingBranchInWork(teamWf)).thenReturn(false); + when(branchService.isCommittedBranchExists(teamWf)).thenReturn(false); + WidgetResult result = validator.validateTransition(provider, widgetDef, analyze, implement, atsServices); + Assert.assertEquals(WidgetResult.Valid, result); + } + + @Test + public void testValidateTransition_changesToCommit() { + AtsXCommitManagerValidator validator = new AtsXCommitManagerValidator(); + + when(provider.getObject()).thenReturn(teamWf); + when(branchService.isWorkingBranchInWork(teamWf)).thenReturn(true); + when(branchService.isCommittedBranchExists(teamWf)).thenReturn(false); + when(branchService.isAllObjectsToCommitToConfigured(teamWf)).thenReturn(true); + WidgetResult result = validator.validateTransition(provider, widgetDef, analyze, implement, atsServices); + Assert.assertEquals(AtsXCommitManagerValidator.ALL_BRANCHES_MUST_BE_COMMITTED, result.getDetails()); + + when(provider.getObject()).thenReturn(teamWf); + when(branchService.isWorkingBranchInWork(teamWf)).thenReturn(false); + when(branchService.isCommittedBranchExists(teamWf)).thenReturn(true); + when(branchService.isAllObjectsToCommitToConfigured(teamWf)).thenReturn(true); + result = validator.validateTransition(provider, widgetDef, analyze, implement, atsServices); + Assert.assertEquals(AtsXCommitManagerValidator.ALL_BRANCHES_MUST_BE_COMMITTED, result.getDetails()); + } + + @Test + public void testValidateTransition_transitionToWithWorkingBranchRuleExists() { + AtsXCommitManagerValidator validator = new AtsXCommitManagerValidator(); + + when(provider.getObject()).thenReturn(teamWf); + when(branchService.isWorkingBranchInWork(teamWf)).thenReturn(true); + when(branchService.isCommittedBranchExists(teamWf)).thenReturn(false); + when(branchService.isAllObjectsToCommitToConfigured(teamWf)).thenReturn(true); + when(implement.hasRule(RuleDefinitionOption.AllowTransitionWithWorkingBranch.name())).thenReturn(true); + WidgetResult result = validator.validateTransition(provider, widgetDef, analyze, implement, atsServices); + Assert.assertEquals(WidgetResult.Valid, result); + } + + @Test + public void testValidateTransition_branchesMustBeConfigured() { + + AtsXCommitManagerValidator validator = new AtsXCommitManagerValidator(); + when(provider.getObject()).thenReturn(teamWf); + when(branchService.isWorkingBranchInWork(teamWf)).thenReturn(true); + when(branchService.isCommittedBranchExists(teamWf)).thenReturn(false); + when(branchService.isAllObjectsToCommitToConfigured(teamWf)).thenReturn(true); + when(implement.hasRule(RuleDefinitionOption.AllowTransitionWithWorkingBranch.name())).thenReturn(false); + + when(branchService.isBranchesAllCommitted(teamWf)).thenReturn(true); + WidgetResult result = validator.validateTransition(provider, widgetDef, analyze, implement, atsServices); + Assert.assertEquals(WidgetResult.Valid, result); + + when(branchService.isBranchesAllCommitted(teamWf)).thenReturn(false); + result = validator.validateTransition(provider, widgetDef, analyze, implement, atsServices); + Assert.assertEquals(AtsXCommitManagerValidator.ALL_BRANCHES_MUST_BE_COMMITTED, result.getDetails()); + + } + +} diff --git a/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/validator/ValidatorTestSuite.java b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/validator/ValidatorTestSuite.java new file mode 100644 index 00000000000..89fdfca6430 --- /dev/null +++ b/plugins/org.eclipse.osee.ats.core.client.test/src/org/eclipse/osee/ats/core/client/validator/ValidatorTestSuite.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.ats.core.client.validator; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +@RunWith(Suite.class) +@Suite.SuiteClasses({AtsXCommitManagerValidatorTest.class}) +/** + * + * @author Donald G. Dunne + */ +public class ValidatorTestSuite { + // TestSuite +} |