Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

## [9.6.1] - 2025-05-16

### Fixed:
- We fixed an issue that caused unit test microflows with auto-committed objects to fail with an unhandled exception (#244962, #246277, #246384).
- We fixed reporting issue for ThrowAssetionFailed action. Now a failed unnamed assertion step will be reported.

## [9.6.0] - 2025-03-20

### Added:
Expand Down
Binary file added dist/UnitTesting_9.6.1.mpk
Binary file not shown.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.mendix.UnitTesting</groupId>
<artifactId>UnitTesting</artifactId>
<version>9.6.0</version>
<version>9.6.1</version>

<repositories>
<repository>
Expand Down
Binary file modified src/UnitTesting.mpr
Binary file not shown.
77 changes: 43 additions & 34 deletions src/javasource/testjavaimplementation/TestExecutionContextTest.java
Original file line number Diff line number Diff line change
@@ -1,55 +1,64 @@
package testjavaimplementation;

import com.mendix.core.Core;
import com.mendix.systemwideinterfaces.core.IContext;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import unittesting.TestExecutionContext;
import unittesting.activities.AssertActivity;

import static org.junit.Assert.*;

public class TestExecutionContextTest {
private final IContext context = Core.createSystemContext();
private static final String FAILURE_MESSAGE = "This is a failure message";
private TestExecutionContext testExecutionContext;

@Before
public void setup() {
this.testExecutionContext = new TestExecutionContext(context, "ExampleMicroflow");
this.testExecutionContext = new TestExecutionContext();
}

@After
public void tearDown() {
this.testExecutionContext.delete();
this.testExecutionContext = null;
}

@Test
public void testExecutionContextShouldInitializeUnitTestContext() {
assertNotNull(this.testExecutionContext.getUnitTestContext());
}

@Test
public void hasFailedAssertionShouldBeFalseByDefault() {
assertFalse(this.testExecutionContext.hasFailedAssertion(context));
assertFalse(this.testExecutionContext.hasFailedAssertion());
}

@Test
public void hasFailedAssertionShouldBeFalseWhenAllAssertionsPassed() {
this.testExecutionContext.collectAssertion(context, "Passed 1", true, null);
this.testExecutionContext.collectAssertion(context, "Passed 2", true, null);
this.testExecutionContext.collectAssertion("Passed 1", true, null);
this.testExecutionContext.collectAssertion("Passed 2", true, null);

assertFalse(this.testExecutionContext.hasFailedAssertion(context));
assertFalse(this.testExecutionContext.hasFailedAssertion());
}

@Test
public void hasFailedAssertionShouldBeTrueWhenCollectingFailedAssertion() {
this.testExecutionContext.collectAssertion(context, "Passed", true, null);
this.testExecutionContext.collectAssertion(context, "Failed", false, null);
this.testExecutionContext.collectAssertion("Passed", true, null);
this.testExecutionContext.collectAssertion("Failed", false, null);

assertTrue(this.testExecutionContext.hasFailedAssertion());
}

@Test
public void assertActivityShouldContainFailureMessageWhenCollectingFailedAssertion() {
AssertActivity assertion = this.testExecutionContext.collectAssertion("Failed", false, FAILURE_MESSAGE);

assertEquals(FAILURE_MESSAGE, assertion.getMessage());
}

assertTrue(this.testExecutionContext.hasFailedAssertion(context));
@Test
public void assertActivityShouldNotContainFailureMessageWhenCollectingPassedAssertion() {
AssertActivity assertion = this.testExecutionContext.collectAssertion("Passed", true, FAILURE_MESSAGE);

assertNull(assertion.getMessage());
}


@Test
public void getLastStepShouldBeNullByDefault() {
assertNull(this.testExecutionContext.getLastStep());
Expand All @@ -65,67 +74,67 @@ public void getLastStepShouldReturnLastCollectedStep() {

@Test
public void getFailureReasonsShouldBeNullByDefault() {
assertEquals(0, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(0, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void getFailureReasonsShouldBeNullIfTestPassed() {
this.testExecutionContext.collectStart(true, null);
this.testExecutionContext.collectAssertion(context, "Passed 1", true, null);
this.testExecutionContext.collectAssertion(context, "Passed 2", true, null);
this.testExecutionContext.collectAssertion("Passed 1", true, null);
this.testExecutionContext.collectAssertion("Passed 2", true, null);
this.testExecutionContext.collectEnd(true, null);

assertEquals(0, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(0, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void getFailureReasonsShouldIncludeFailedStart() {
this.testExecutionContext.collectStart(false, "Start failed");

assertEquals(1, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(1, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void getFailureReasonsShouldIncludeFailedEnd() {
this.testExecutionContext.collectEnd(false, "End failed");

assertEquals(1, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(1, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void getFailureReasonsShouldIncludeFailedAssertion() {
this.testExecutionContext.collectAssertion(context, "Passed", true, null);
this.testExecutionContext.collectAssertion(context, "Failed 1", false, null);
this.testExecutionContext.collectAssertion(context, "Failed 2", false, null);
this.testExecutionContext.collectAssertion("Passed", true, null);
this.testExecutionContext.collectAssertion("Failed 1", false, null);
this.testExecutionContext.collectAssertion("Failed 2", false, null);

assertEquals(1, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(1, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void getFailureReasonsShouldIncludeUncaughtException() {
this.testExecutionContext.collectException(new Exception("Example Exception"));

assertEquals(1, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(1, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void getFailureReasonsShouldIncludeAllUniqueFailureReasons() {
this.testExecutionContext.collectStart(false, "Start failed");
this.testExecutionContext.collectAssertion(context, "Failed 1", false, null);
this.testExecutionContext.collectAssertion(context, "Failed 2", false, null);
this.testExecutionContext.collectAssertion("Failed 1", false, null);
this.testExecutionContext.collectAssertion("Failed 2", false, null);
this.testExecutionContext.collectException(new Exception("Test Exception"));
this.testExecutionContext.collectEnd(false, "End failed");

assertEquals(4, this.testExecutionContext.getFailureReasons(context).size());
assertEquals(4, this.testExecutionContext.getFailureReasons().size());
}

@Test
public void createTestActivitiesShouldContainAllCollectedTestActivities() {
this.testExecutionContext.collectStart(true, "Started test");

this.testExecutionContext.collectAssertion(context, "Passed", true, null);
this.testExecutionContext.collectAssertion(context, "Failed 1", false, null);
this.testExecutionContext.collectAssertion(context, "Failed 2", false, null);
this.testExecutionContext.collectAssertion("Passed", true, null);
this.testExecutionContext.collectAssertion("Failed 1", false, null);
this.testExecutionContext.collectAssertion("Failed 2", false, null);

this.testExecutionContext.collectStep("Step 1");
this.testExecutionContext.collectStep("Step 2");
Expand All @@ -134,6 +143,6 @@ public void createTestActivitiesShouldContainAllCollectedTestActivities() {

this.testExecutionContext.collectEnd(true, "Test ended successfully");

assertEquals(8, this.testExecutionContext.createTestActivities(context, null).size());
assertEquals(8, this.testExecutionContext.createTestActivities(Core.createSystemContext(), null).size());
}
}
Loading