From f117cfed0316cb54e929d863299cbdb080ca72c7 Mon Sep 17 00:00:00 2001 From: Giulio Longfils Date: Fri, 16 Jan 2026 19:41:15 +0100 Subject: [PATCH 01/11] build: changing central publishing plugin waitUntil to uploaded to avoid gh build fail after 30mins --- spectrum/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spectrum/pom.xml b/spectrum/pom.xml index 231e93fd..72f7bb0a 100644 --- a/spectrum/pom.xml +++ b/spectrum/pom.xml @@ -373,7 +373,7 @@ central true - published + uploaded From 2eac47fc2e673b13ed12ff0fcba51b10f94e828e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 17:42:03 +0000 Subject: [PATCH 02/11] build(deps): bump jackson.version from 2.20.1 to 2.21.0 Bumps `jackson.version` from 2.20.1 to 2.21.0. Updates `com.fasterxml.jackson.core:jackson-databind` from 2.20.1 to 2.21.0 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-yaml` from 2.20.1 to 2.21.0 - [Commits](https://github.com/FasterXML/jackson-dataformats-text/compare/jackson-dataformats-text-2.20.1...jackson-dataformats-text-2.21.0) Updates `com.fasterxml.jackson.dataformat:jackson-dataformat-xml` from 2.20.1 to 2.21.0 - [Commits](https://github.com/FasterXML/jackson-dataformat-xml/compare/jackson-dataformat-xml-2.20.1...jackson-dataformat-xml-2.21.0) Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.20.1 to 2.21.0 --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-version: 2.21.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml dependency-version: 2.21.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: com.fasterxml.jackson.dataformat:jackson-dataformat-xml dependency-version: 2.21.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310 dependency-version: 2.21.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0ed6b076..d2b84039 100644 --- a/pom.xml +++ b/pom.xml @@ -48,7 +48,7 @@ 6.0.2 5.21.0 - 2.20.1 + 2.21.0 8.12.6 4.38.0 2.0.17 From 767bf58870184bbafc9d993c77df76c28f9b899b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 17:42:14 +0000 Subject: [PATCH 03/11] build(deps): bump ch.qos.logback:logback-classic from 1.5.24 to 1.5.25 Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.24 to 1.5.25. - [Release notes](https://github.com/qos-ch/logback/releases) - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.24...v_1.5.25) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-version: 1.5.25 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0ed6b076..78fa1cdd 100644 --- a/pom.xml +++ b/pom.xml @@ -217,7 +217,7 @@ ch.qos.logback logback-classic - 1.5.24 + 1.5.25 org.slf4j From cb605553ac50657747d708a7d5baf2dc78ff105f Mon Sep 17 00:00:00 2001 From: Pratik Tiwari Date: Sun, 18 Jan 2026 19:59:04 +0530 Subject: [PATCH 04/11] #154 - Adds a way to configure an instance of ElementLocatorFactory --- .../github/giulong/spectrum/SpectrumPage.java | 7 ++-- .../AjaxLocatorFactory.java | 31 ++++++++++++++++ .../DefaultLocatorFactory.java | 18 ++++++++++ .../spectrum/interfaces/LocatorFactory.java | 22 ++++++++++++ .../giulong/spectrum/utils/Configuration.java | 4 +++ .../resources/yaml/configuration.default.yaml | 5 +++ .../giulong/spectrum/SpectrumPageTest.java | 22 +++++------- .../giulong/spectrum/SpectrumTestTest.java | 22 ++++++------ .../AjaxLocatorFactoryTest.java | 36 +++++++++++++++++++ .../DefaultLocatorFactoryTest.java | 23 ++++++++++++ 10 files changed, 161 insertions(+), 29 deletions(-) create mode 100644 spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactory.java create mode 100644 spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java create mode 100644 spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java create mode 100644 spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java create mode 100644 spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/SpectrumPage.java b/spectrum/src/main/java/io/github/giulong/spectrum/SpectrumPage.java index 9440ba87..ff0cf19d 100644 --- a/spectrum/src/main/java/io/github/giulong/spectrum/SpectrumPage.java +++ b/spectrum/src/main/java/io/github/giulong/spectrum/SpectrumPage.java @@ -2,7 +2,6 @@ import java.lang.reflect.Field; import java.lang.reflect.Proxy; -import java.time.Duration; import java.util.List; import io.github.giulong.spectrum.interfaces.Endpoint; @@ -17,7 +16,7 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.PageFactory; -import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; @Slf4j @Getter @@ -85,8 +84,8 @@ SpectrumPage init() { log.debug("The endpoint of page '{}' is '{}'", className, endpointValue); Reflections.setField("endpoint", this, endpointValue); - final Duration autoWaitDuration = configuration.getDrivers().getWaits().getAuto().getTimeout(); - PageFactory.initElements(new SpectrumFieldDecorator(new AjaxElementLocatorFactory(driver, (int) autoWaitDuration.toSeconds())), this); + final ElementLocatorFactory locatorFactory = configuration.getDrivers().getLocatorFactory().buildFor(driver); + PageFactory.initElements(new SpectrumFieldDecorator(locatorFactory), this); Reflections .getAnnotatedFields(this, JsWebElement.class) diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactory.java b/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactory.java new file mode 100644 index 00000000..27f5834f --- /dev/null +++ b/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactory.java @@ -0,0 +1,31 @@ +package io.github.giulong.spectrum.element_locator_factories; + +import java.time.Duration; + +import com.fasterxml.jackson.annotation.JsonPropertyDescription; + +import io.github.giulong.spectrum.interfaces.JsonSchemaTypes; +import io.github.giulong.spectrum.interfaces.LocatorFactory; + +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; + +@Slf4j +@Getter +@SuppressWarnings("unused") +public class AjaxLocatorFactory implements LocatorFactory { + + @JsonPropertyDescription("Timeout in seconds") + @JsonSchemaTypes(double.class) + private Duration timeout; + + @Override + public ElementLocatorFactory buildFor(final WebDriver driver) { + log.debug("Configuring AjaxElementLocatorFactory with a timeout of {}", timeout); + return new AjaxElementLocatorFactory(driver, (int) timeout.toSeconds()); + } +} diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java b/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java new file mode 100644 index 00000000..4c6c4fcf --- /dev/null +++ b/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java @@ -0,0 +1,18 @@ +package io.github.giulong.spectrum.element_locator_factories; + +import io.github.giulong.spectrum.interfaces.LocatorFactory; + +import lombok.extern.slf4j.Slf4j; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; + +@Slf4j +public class DefaultLocatorFactory implements LocatorFactory { + @Override + public ElementLocatorFactory buildFor(final WebDriver driver) { + log.debug("Configuring DefaultElementLocatorFactory"); + return new DefaultElementLocatorFactory(driver); + } +} diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java b/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java new file mode 100644 index 00000000..ebeb003a --- /dev/null +++ b/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java @@ -0,0 +1,22 @@ +package io.github.giulong.spectrum.interfaces; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +import io.github.giulong.spectrum.element_locator_factories.AjaxLocatorFactory; +import io.github.giulong.spectrum.element_locator_factories.DefaultLocatorFactory; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.WRAPPER_OBJECT +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = DefaultLocatorFactory.class, name = "default"), + @JsonSubTypes.Type(value = AjaxLocatorFactory.class, name = "ajax") +}) +public interface LocatorFactory { + ElementLocatorFactory buildFor(final WebDriver driver); +} diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java b/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java index 35ae1c11..ceec34d9 100644 --- a/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java +++ b/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java @@ -17,6 +17,7 @@ import io.github.giulong.spectrum.drivers.Driver; import io.github.giulong.spectrum.enums.Frame; import io.github.giulong.spectrum.interfaces.JsonSchemaTypes; +import io.github.giulong.spectrum.interfaces.LocatorFactory; import io.github.giulong.spectrum.internals.jackson.deserializers.interpolation.interpolators.EnvironmentInterpolator; import io.github.giulong.spectrum.internals.jackson.deserializers.interpolation.interpolators.InPlaceInterpolator; import io.github.giulong.spectrum.internals.jackson.deserializers.interpolation.interpolators.PropertiesInterpolator; @@ -311,6 +312,9 @@ public static class Drivers { @JsonPropertyDescription("Events fired by the driver, automatically logged and added to the report according to the log level set when running the suite") private Events events; + @JsonPropertyDescription("An instance of ElementLocatorFactory to be used across Drivers") + private LocatorFactory locatorFactory; + @Getter @Generated public static class Waits { diff --git a/spectrum/src/main/resources/yaml/configuration.default.yaml b/spectrum/src/main/resources/yaml/configuration.default.yaml index 53045e6b..84ad9cec 100644 --- a/spectrum/src/main/resources/yaml/configuration.default.yaml +++ b/spectrum/src/main/resources/yaml/configuration.default.yaml @@ -530,6 +530,11 @@ drivers: afterAlert: message: After alert %1$s %2$s + # The ElementLocatorFactory to be used across Drivers + locatorFactory: + ajax: + timeout: 30 + # Data models data: folder: data # sub-folder under src/test/resources where to find your data*.yaml diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java index f54015b7..22fe62b4 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java @@ -12,6 +12,7 @@ import java.util.stream.Stream; import io.github.giulong.spectrum.interfaces.JsWebElement; +import io.github.giulong.spectrum.interfaces.LocatorFactory; import io.github.giulong.spectrum.interfaces.Secured; import io.github.giulong.spectrum.internals.page_factory.SpectrumFieldDecorator; import io.github.giulong.spectrum.utils.Configuration; @@ -31,7 +32,7 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.PageFactory; -import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; class SpectrumPageTest { @@ -149,23 +150,19 @@ static Stream valuesProvider() { @DisplayName("init should set the endpoint, init the web elements, add the secured web elements, set the js web elements, and return the page instance") void init() { final WebElement proxy = mock(); - final long seconds = 123L; + final LocatorFactory locatorFactory = mock(LocatorFactory.class); + final ElementLocatorFactory elementLocatorFactory = mock(ElementLocatorFactory.class); when(jsWebElementProxyBuilder.buildFor(webElementArgumentCaptor.capture())).thenReturn(proxy); when(JsWebElementListInvocationHandler.builder()).thenReturn(jsWebElementListInvocationHandlerBuilder); when(configuration.getDrivers()).thenReturn(drivers); - when(drivers.getWaits()).thenReturn(waits); - when(waits.getAuto()).thenReturn(auto); - when(auto.getTimeout()).thenReturn(timeout); - when(timeout.toSeconds()).thenReturn(seconds); - - final MockedConstruction factoryMockedConstruction = mockConstruction(AjaxElementLocatorFactory.class, (mock, context) -> { - assertEquals(webDriver, context.arguments().getFirst()); - assertEquals((int) seconds, context.arguments().get(1)); - }); + when(drivers.getLocatorFactory()).thenReturn(locatorFactory); + when(locatorFactory.buildFor(webDriver)).thenReturn(elementLocatorFactory); - final MockedConstruction decoratorMockedConstruction = mockConstruction(SpectrumFieldDecorator.class); + final MockedConstruction decoratorMockedConstruction = mockConstruction(SpectrumFieldDecorator.class, (mock, context) -> { + assertEquals(elementLocatorFactory, context.arguments().getFirst()); + }); assertEquals(spectrumPage, spectrumPage.init()); @@ -176,7 +173,6 @@ void init() { assertEquals(proxy, Reflections.getFieldValue("jsWebElement", spectrumPage)); - factoryMockedConstruction.close(); decoratorMockedConstruction.close(); } diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java index 2d309b63..0cabe1e3 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java @@ -14,6 +14,7 @@ import io.github.giulong.spectrum.exceptions.TestFailedException; import io.github.giulong.spectrum.interfaces.Endpoint; import io.github.giulong.spectrum.interfaces.JsWebElement; +import io.github.giulong.spectrum.interfaces.LocatorFactory; import io.github.giulong.spectrum.types.DownloadWait; import io.github.giulong.spectrum.types.ImplicitWait; import io.github.giulong.spectrum.types.PageLoadWait; @@ -41,6 +42,7 @@ import org.openqa.selenium.bidi.module.LogInspector; import org.openqa.selenium.bidi.module.Network; import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; class SpectrumTestTest { @@ -176,17 +178,14 @@ void testBeforeAll() { void testBeforeEach() { // injectDataIn final String folder = "folder"; + final LocatorFactory locatorFactory = mock(LocatorFactory.class); + final ElementLocatorFactory elementLocatorFactory = mock(ElementLocatorFactory.class); when(configuration.getData()).thenReturn(dataConfiguration); when(dataConfiguration.getFolder()).thenReturn(folder); when(yamlUtils.readClient(folder + "/data.yaml", FakeData.class)).thenReturn(data); - - final long seconds = 123L; when(configuration.getDrivers()).thenReturn(drivers); - when(drivers.getWaits()).thenReturn(waits); - when(waits.getAuto()).thenReturn(auto); - when(auto.getTimeout()).thenReturn(timeout); - when(timeout.toSeconds()).thenReturn(seconds); - + when(drivers.getLocatorFactory()).thenReturn(locatorFactory); + when(locatorFactory.buildFor(driver)).thenReturn(elementLocatorFactory); when(statefulExtentTest.getCurrentNode()).thenReturn(extentTest); assertNull(childTestVoid.childTestPage); @@ -247,12 +246,11 @@ void testBaseSpectrumAfterEachThrows() { @Test @DisplayName("injectPages should init also init pages from super classes") void injectPages() { - final long seconds = 123L; + final LocatorFactory locatorFactory = mock(LocatorFactory.class); + final ElementLocatorFactory elementLocatorFactory = mock(ElementLocatorFactory.class); when(configuration.getDrivers()).thenReturn(drivers); - when(drivers.getWaits()).thenReturn(waits); - when(waits.getAuto()).thenReturn(auto); - when(auto.getTimeout()).thenReturn(timeout); - when(timeout.toSeconds()).thenReturn(seconds); + when(drivers.getLocatorFactory()).thenReturn(locatorFactory); + when(locatorFactory.buildFor(driver)).thenReturn(elementLocatorFactory); assertNull(childTest.childTestPage); assertNull(childTest.getParentTestPage()); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java new file mode 100644 index 00000000..6e6fa30e --- /dev/null +++ b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java @@ -0,0 +1,36 @@ +package io.github.giulong.spectrum.element_locator_factories; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.mockito.Mockito.mock; + +import java.lang.reflect.Field; +import java.time.Duration; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; + +class AjaxLocatorFactoryTest { + + @Test + @DisplayName("buildFor should return a new instance of AjaxElementLocatorFactory") + void testBuildFor() throws NoSuchFieldException, IllegalAccessException { + final AjaxLocatorFactory ajaxLocatorFactory = new AjaxLocatorFactory(); + final WebDriver driver = mock(WebDriver.class); + final int timeoutSeconds = 10; + final Duration timeout = Duration.ofSeconds(timeoutSeconds); + + Field timeoutField = AjaxLocatorFactory.class.getDeclaredField("timeout"); + timeoutField.setAccessible(true); + timeoutField.set(ajaxLocatorFactory, timeout); + + ElementLocatorFactory actualFactory = ajaxLocatorFactory.buildFor(driver); + + assertInstanceOf(AjaxElementLocatorFactory.class, actualFactory); + + assertEquals(timeout, ajaxLocatorFactory.getTimeout()); + } +} diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java new file mode 100644 index 00000000..4a0c22d0 --- /dev/null +++ b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java @@ -0,0 +1,23 @@ +package io.github.giulong.spectrum.element_locator_factories; + +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.mockito.Mockito.mock; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; +import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; + +class DefaultLocatorFactoryTest { + + @Test + @DisplayName("buildFor should return a new instance of DefaultElementLocatorFactory") + void testBuildFor() { + final DefaultLocatorFactory defaultLocatorFactory = new DefaultLocatorFactory(); + final WebDriver driver = mock(WebDriver.class); + ElementLocatorFactory actualFactory = defaultLocatorFactory.buildFor(driver); + + assertInstanceOf(DefaultElementLocatorFactory.class, actualFactory); + } +} From 6cd7c168be3d9e68711352774112ae995a3906e9 Mon Sep 17 00:00:00 2001 From: Giulio Longfils Date: Sat, 24 Jan 2026 14:36:21 +0100 Subject: [PATCH 05/11] refactor(#521): minor code cleaning during pr 521 review --- .../DefaultLocatorFactory.java | 1 + .../spectrum/interfaces/LocatorFactory.java | 12 +++--- .../giulong/spectrum/utils/Configuration.java | 6 +-- .../resources/yaml/configuration.default.yaml | 10 ++--- .../giulong/spectrum/SpectrumPageTest.java | 19 ++-------- .../giulong/spectrum/SpectrumTestTest.java | 18 ++------- .../AjaxLocatorFactoryTest.java | 37 +++++++++++-------- .../DefaultLocatorFactoryTest.java | 22 ++++++++--- 8 files changed, 60 insertions(+), 65 deletions(-) diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java b/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java index 4c6c4fcf..97377f1e 100644 --- a/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java +++ b/spectrum/src/main/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactory.java @@ -10,6 +10,7 @@ @Slf4j public class DefaultLocatorFactory implements LocatorFactory { + @Override public ElementLocatorFactory buildFor(final WebDriver driver) { log.debug("Configuring DefaultElementLocatorFactory"); diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java b/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java index ebeb003a..69405f17 100644 --- a/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java +++ b/spectrum/src/main/java/io/github/giulong/spectrum/interfaces/LocatorFactory.java @@ -1,5 +1,8 @@ package io.github.giulong.spectrum.interfaces; +import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.WRAPPER_OBJECT; +import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; + import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; @@ -9,14 +12,11 @@ import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.WRAPPER_OBJECT -) +@JsonTypeInfo(use = NAME, include = WRAPPER_OBJECT) @JsonSubTypes({ @JsonSubTypes.Type(value = DefaultLocatorFactory.class, name = "default"), - @JsonSubTypes.Type(value = AjaxLocatorFactory.class, name = "ajax") + @JsonSubTypes.Type(value = AjaxLocatorFactory.class, name = "ajax"), }) public interface LocatorFactory { - ElementLocatorFactory buildFor(final WebDriver driver); + ElementLocatorFactory buildFor(WebDriver driver); } diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java b/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java index ceec34d9..2e3b33f8 100644 --- a/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java +++ b/spectrum/src/main/java/io/github/giulong/spectrum/utils/Configuration.java @@ -276,6 +276,9 @@ public static class Drivers { @JsonPropertyDescription("Driver's fluent waits") private Waits waits; + @JsonPropertyDescription("An instance of ElementLocatorFactory to be used across Drivers") + private LocatorFactory locatorFactory; + @JsonPropertyDescription("Chrome capabilities. See: https://www.selenium.dev/documentation/webdriver/browsers/chrome/") private Chrome chrome; @@ -312,9 +315,6 @@ public static class Drivers { @JsonPropertyDescription("Events fired by the driver, automatically logged and added to the report according to the log level set when running the suite") private Events events; - @JsonPropertyDescription("An instance of ElementLocatorFactory to be used across Drivers") - private LocatorFactory locatorFactory; - @Getter @Generated public static class Waits { diff --git a/spectrum/src/main/resources/yaml/configuration.default.yaml b/spectrum/src/main/resources/yaml/configuration.default.yaml index 84ad9cec..f7fb2094 100644 --- a/spectrum/src/main/resources/yaml/configuration.default.yaml +++ b/spectrum/src/main/resources/yaml/configuration.default.yaml @@ -119,6 +119,11 @@ drivers: enabled: true # Whether to enable the auto-wait timeout: 30 # Timeout in seconds + # The ElementLocatorFactory to be used across Drivers + locatorFactory: + ajax: + timeout: 30 + # Chrome capabilities. See: https://www.selenium.dev/documentation/webdriver/browsers/chrome/ chrome: biDi: false # Whether to enable the BiDi protocol instead of CDP @@ -530,11 +535,6 @@ drivers: afterAlert: message: After alert %1$s %2$s - # The ElementLocatorFactory to be used across Drivers - locatorFactory: - ajax: - timeout: 30 - # Data models data: folder: data # sub-folder under src/test/resources where to find your data*.yaml diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java index 22fe62b4..7e56f32b 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumPageTest.java @@ -7,7 +7,6 @@ import java.lang.reflect.Field; import java.lang.reflect.Proxy; -import java.time.Duration; import java.util.List; import java.util.stream.Stream; @@ -63,15 +62,6 @@ class SpectrumPageTest { @Mock private Configuration.Drivers drivers; - @Mock - private Configuration.Drivers.Waits waits; - - @Mock - private Configuration.Drivers.Waits.AutoWait auto; - - @Mock - private Duration timeout; - @Mock private Configuration.Application application; @@ -150,8 +140,8 @@ static Stream valuesProvider() { @DisplayName("init should set the endpoint, init the web elements, add the secured web elements, set the js web elements, and return the page instance") void init() { final WebElement proxy = mock(); - final LocatorFactory locatorFactory = mock(LocatorFactory.class); - final ElementLocatorFactory elementLocatorFactory = mock(ElementLocatorFactory.class); + final LocatorFactory locatorFactory = mock(); + final ElementLocatorFactory elementLocatorFactory = mock(); when(jsWebElementProxyBuilder.buildFor(webElementArgumentCaptor.capture())).thenReturn(proxy); when(JsWebElementListInvocationHandler.builder()).thenReturn(jsWebElementListInvocationHandlerBuilder); @@ -160,9 +150,8 @@ void init() { when(drivers.getLocatorFactory()).thenReturn(locatorFactory); when(locatorFactory.buildFor(webDriver)).thenReturn(elementLocatorFactory); - final MockedConstruction decoratorMockedConstruction = mockConstruction(SpectrumFieldDecorator.class, (mock, context) -> { - assertEquals(elementLocatorFactory, context.arguments().getFirst()); - }); + final MockedConstruction decoratorMockedConstruction = mockConstruction( + (mock, context) -> assertEquals(elementLocatorFactory, context.arguments().getFirst())); assertEquals(spectrumPage, spectrumPage.init()); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java index 0cabe1e3..b8ded0fd 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/SpectrumTestTest.java @@ -5,7 +5,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; -import java.time.Duration; import java.util.List; import com.aventstack.extentreports.ExtentReports; @@ -92,15 +91,6 @@ class SpectrumTestTest { @Mock private Configuration.Drivers drivers; - @Mock - private Configuration.Drivers.Waits waits; - - @Mock - private Configuration.Drivers.Waits.AutoWait auto; - - @Mock - private Duration timeout; - @Mock private ExtentReports extentReports; @@ -178,8 +168,8 @@ void testBeforeAll() { void testBeforeEach() { // injectDataIn final String folder = "folder"; - final LocatorFactory locatorFactory = mock(LocatorFactory.class); - final ElementLocatorFactory elementLocatorFactory = mock(ElementLocatorFactory.class); + final LocatorFactory locatorFactory = mock(); + final ElementLocatorFactory elementLocatorFactory = mock(); when(configuration.getData()).thenReturn(dataConfiguration); when(dataConfiguration.getFolder()).thenReturn(folder); when(yamlUtils.readClient(folder + "/data.yaml", FakeData.class)).thenReturn(data); @@ -246,8 +236,8 @@ void testBaseSpectrumAfterEachThrows() { @Test @DisplayName("injectPages should init also init pages from super classes") void injectPages() { - final LocatorFactory locatorFactory = mock(LocatorFactory.class); - final ElementLocatorFactory elementLocatorFactory = mock(ElementLocatorFactory.class); + final LocatorFactory locatorFactory = mock(); + final ElementLocatorFactory elementLocatorFactory = mock(); when(configuration.getDrivers()).thenReturn(drivers); when(drivers.getLocatorFactory()).thenReturn(locatorFactory); when(locatorFactory.buildFor(driver)).thenReturn(elementLocatorFactory); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java index 6e6fa30e..7b5f8971 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/AjaxLocatorFactoryTest.java @@ -1,36 +1,41 @@ package io.github.giulong.spectrum.element_locator_factories; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertInstanceOf; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockConstruction; -import java.lang.reflect.Field; import java.time.Duration; +import io.github.giulong.spectrum.utils.Reflections; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockedConstruction; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory; import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; class AjaxLocatorFactoryTest { - @Test - @DisplayName("buildFor should return a new instance of AjaxElementLocatorFactory") - void testBuildFor() throws NoSuchFieldException, IllegalAccessException { - final AjaxLocatorFactory ajaxLocatorFactory = new AjaxLocatorFactory(); - final WebDriver driver = mock(WebDriver.class); - final int timeoutSeconds = 10; - final Duration timeout = Duration.ofSeconds(timeoutSeconds); + @Mock + private WebDriver driver; - Field timeoutField = AjaxLocatorFactory.class.getDeclaredField("timeout"); - timeoutField.setAccessible(true); - timeoutField.set(ajaxLocatorFactory, timeout); + @InjectMocks + private AjaxLocatorFactory locatorFactory; - ElementLocatorFactory actualFactory = ajaxLocatorFactory.buildFor(driver); + @Test + @DisplayName("buildFor should return a new instance of AjaxElementLocatorFactory") + void testBuildFor() { + final Duration timeout = Duration.ofSeconds(10); + Reflections.setField("timeout", locatorFactory, timeout); - assertInstanceOf(AjaxElementLocatorFactory.class, actualFactory); + try (MockedConstruction construction = mockConstruction()) { + final ElementLocatorFactory actual = locatorFactory.buildFor(driver); + final ElementLocatorFactory expected = construction.constructed().getFirst(); - assertEquals(timeout, ajaxLocatorFactory.getTimeout()); + assertEquals(expected, actual); + assertEquals(timeout, locatorFactory.getTimeout()); + } } } diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java index 4a0c22d0..adf85ba3 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/element_locator_factories/DefaultLocatorFactoryTest.java @@ -1,23 +1,33 @@ package io.github.giulong.spectrum.element_locator_factories; -import static org.junit.jupiter.api.Assertions.assertInstanceOf; -import static org.mockito.Mockito.mock; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mockConstruction; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockedConstruction; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; import org.openqa.selenium.support.pagefactory.ElementLocatorFactory; class DefaultLocatorFactoryTest { + @Mock + private WebDriver driver; + + @InjectMocks + private DefaultLocatorFactory locatorFactory; + @Test @DisplayName("buildFor should return a new instance of DefaultElementLocatorFactory") void testBuildFor() { - final DefaultLocatorFactory defaultLocatorFactory = new DefaultLocatorFactory(); - final WebDriver driver = mock(WebDriver.class); - ElementLocatorFactory actualFactory = defaultLocatorFactory.buildFor(driver); + try (MockedConstruction construction = mockConstruction()) { + final ElementLocatorFactory actual = locatorFactory.buildFor(driver); + final ElementLocatorFactory expected = construction.constructed().getFirst(); - assertInstanceOf(DefaultElementLocatorFactory.class, actualFactory); + assertEquals(expected, actual); + } } } From 7e4e292400ee7a6eebd0440a01a62f75254a94d8 Mon Sep 17 00:00:00 2001 From: Giulio Longfils Date: Sat, 24 Jan 2026 16:48:17 +0100 Subject: [PATCH 06/11] test: cleaning mockConstruction with overloaded method that does not need passing the class literal --- .../giulong/spectrum/drivers/AndroidTest.java | 2 +- .../spectrum/drivers/AppiumGenericTest.java | 4 +-- .../giulong/spectrum/drivers/AppiumTest.java | 2 +- .../giulong/spectrum/drivers/ChromeTest.java | 6 ++-- .../spectrum/drivers/ChromiumTest.java | 2 +- .../giulong/spectrum/drivers/DriverTest.java | 9 +++--- .../giulong/spectrum/drivers/EdgeTest.java | 6 ++-- .../spectrum/drivers/EspressoTest.java | 4 +-- .../giulong/spectrum/drivers/FirefoxTest.java | 6 ++-- .../giulong/spectrum/drivers/Mac2Test.java | 4 +-- .../giulong/spectrum/drivers/SafariTest.java | 4 +-- .../spectrum/drivers/UiAutomator2Test.java | 4 +-- .../giulong/spectrum/drivers/WindowsTest.java | 4 +-- .../spectrum/drivers/XCUITestTest.java | 6 ++-- .../resolvers/ActionsResolverTest.java | 2 +- .../resolvers/DownloadWaitResolverTest.java | 2 +- .../resolvers/DriverResolverTest.java | 8 ++--- .../resolvers/FakerResolverTest.java | 2 +- .../resolvers/ImplicitWaitResolverTest.java | 2 +- .../resolvers/PageLoadWaitResolverTest.java | 2 +- .../resolvers/ScriptWaitResolverTest.java | 2 +- .../BrowsingContextInspectorResolverTest.java | 2 +- .../bidi/BrowsingContextResolverTest.java | 2 +- .../bidi/LogInspectorResolverTest.java | 2 +- .../resolvers/bidi/NetworkResolverTest.java | 2 +- .../spectrum/internals/AppiumLogTest.java | 2 +- .../spectrum/internals/DriverLogTest.java | 2 +- .../deserializers/RandomDeserializerTest.java | 2 +- .../SpectrumFieldDecoratorTest.java | 4 +-- .../spectrum/utils/ContextManagerTest.java | 4 +-- .../spectrum/utils/ExtentReporterTest.java | 4 +-- .../spectrum/utils/FreeMarkerWrapperTest.java | 31 ++++++------------- .../spectrum/utils/MetadataManagerTest.java | 2 +- .../giulong/spectrum/utils/TestDataTest.java | 2 +- .../environments/AppiumEnvironmentTest.java | 22 ++++++------- .../utils/events/MailConsumerTest.java | 4 +-- .../VisualRegressionConsumerTest.java | 2 +- .../utils/events/video/VideoConsumerTest.java | 10 +++--- .../ClientFileProviderTest.java | 2 +- .../InternalFileProviderTest.java | 2 +- 40 files changed, 85 insertions(+), 101 deletions(-) diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AndroidTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AndroidTest.java index f2b0619a..108c6718 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AndroidTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AndroidTest.java @@ -61,7 +61,7 @@ void configureWaitsOf() { @Test @DisplayName("buildDriverFor should return a new instance of AndroidDriver for the provided url and the instance capabilities") void buildDriverFor() { - MockedConstruction androidDriverMockedConstruction = mockConstruction(AndroidDriver.class, (mock, context) -> { + MockedConstruction androidDriverMockedConstruction = mockConstruction((mock, context) -> { assertEquals(url, context.arguments().getFirst()); assertEquals(capabilities, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumGenericTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumGenericTest.java index b330faf4..144be88b 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumGenericTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumGenericTest.java @@ -53,7 +53,7 @@ void beforeEach() { @Test @DisplayName("buildCapabilities should build a new instance of capabilities and set the capabilities from the yaml on it") void buildCapabilitiesAbsoluteAppPath() { - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(MutableCapabilities.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -71,7 +71,7 @@ void buildCapabilitiesAbsoluteAppPath() { @Test @DisplayName("buildDriverFor should return a new instance of AppiumDriver for the provided url and the instance capabilities") void buildDriverFor() { - MockedConstruction appiumDriverMockedConstruction = mockConstruction(AppiumDriver.class, (mock, context) -> { + MockedConstruction appiumDriverMockedConstruction = mockConstruction((mock, context) -> { assertEquals(url, context.arguments().getFirst()); assertEquals(mutableCapabilities, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumTest.java index 701c9047..41d49bc8 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/AppiumTest.java @@ -56,7 +56,7 @@ void getDriverServiceBuilder() { when(service.getPort()).thenReturn(port); when(service.getTimeout()).thenReturn(timeout); - MockedConstruction appiumServiceBuilderMockedConstruction = mockConstruction(AppiumServiceBuilder.class, (mock, context) -> { + MockedConstruction appiumServiceBuilderMockedConstruction = mockConstruction((mock, context) -> { when(mock.withIPAddress(ipAddress)).thenReturn(mock); when(mock.usingPort(port)).thenReturn(mock); when(mock.withTimeout(timeout)).thenReturn(mock); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromeTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromeTest.java index 19d6e20c..6ac8ad77 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromeTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromeTest.java @@ -70,7 +70,7 @@ void getDriverServiceBuilder() { when(service.isVerbose()).thenReturn(true); when(service.getAllowedListIps()).thenReturn(allowedListIps); - MockedConstruction chromeDriverServiceMockedConstruction = mockConstruction(ChromeDriverService.Builder.class, (mock, context) -> { + MockedConstruction chromeDriverServiceMockedConstruction = mockConstruction((mock, context) -> { when(mock.withBuildCheckDisabled(true)).thenReturn(mock); when(mock.withAppendLog(true)).thenReturn(mock); when(mock.withReadableTimestamp(true)).thenReturn(mock); @@ -106,9 +106,9 @@ void buildCapabilities() { when(driversConfig.isBiDi()).thenReturn(false); lenient().when(chromeConfig.isBiDi()).thenReturn(true); - MockedConstruction chromeOptionsMockedConstruction = mockConstruction(ChromeOptions.class, + MockedConstruction chromeOptionsMockedConstruction = mockConstruction( (mock, context) -> when(mock.addArguments(arguments)).thenReturn(mock)); - MockedConstruction loggingPreferencesMockedConstruction = mockConstruction(LoggingPreferences.class); + MockedConstruction loggingPreferencesMockedConstruction = mockConstruction(); chrome.buildCapabilities(); final ChromeOptions chromeOptions = chromeOptionsMockedConstruction.constructed().getFirst(); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromiumTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromiumTest.java index ea164e60..81976da0 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromiumTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/ChromiumTest.java @@ -46,7 +46,7 @@ void setLoggingPreferencesFrom() { when(logs.getDriver()).thenReturn(driverLevel); when(logs.getPerformance()).thenReturn(performanceLevel); - MockedConstruction mockedConstruction = mockConstruction(LoggingPreferences.class); + MockedConstruction mockedConstruction = mockConstruction(); chrome.capabilities = capabilities; chrome.setLoggingPreferencesFrom(logs); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/DriverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/DriverTest.java index c9e5d250..b2a8bb68 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/DriverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/DriverTest.java @@ -100,7 +100,7 @@ void beforeEach() { WEB_DRIVER_THREAD_LOCAL.remove(); threadGuardMockedStatic = mockStatic(); - loggingPreferencesMockedConstruction = mockConstruction(LoggingPreferences.class); + loggingPreferencesMockedConstruction = mockConstruction(); } @AfterEach @@ -115,7 +115,7 @@ void mergeGridCapabilitiesFrom() { Reflections.setField("capabilities", driver, driverOptions); when(driverOptions.merge(desiredCapabilitiesArgumentCaptor.capture())).thenReturn(driverOptions); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(DesiredCapabilities.class, (mock, context) -> { + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction((mock, context) -> { assertEquals(gridCapabilities, context.arguments().getFirst()); }); @@ -142,9 +142,8 @@ void build() { when(chromeConfig.getCapabilities()).thenReturn(Map.of()); when(chromeConfig.getExperimentalOptions()).thenReturn(Map.of()); - MockedConstruction chromeOptionsMockedConstruction = mockConstruction(ChromeOptions.class, (mock, context) -> { - when(mock.addArguments(arguments)).thenReturn(mock); - }); + MockedConstruction chromeOptionsMockedConstruction = mockConstruction( + (mock, context) -> when(mock.addArguments(arguments)).thenReturn(mock)); when(waits.getImplicit()).thenReturn(implicitDuration); when(waits.getPageLoadTimeout()).thenReturn(pageLoadDuration); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EdgeTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EdgeTest.java index 11f352bd..f92646d5 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EdgeTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EdgeTest.java @@ -70,7 +70,7 @@ void getDriverServiceBuilder() { when(service.isVerbose()).thenReturn(true); when(service.getAllowedListIps()).thenReturn(allowedListIps); - MockedConstruction edgeDriverServiceMockedConstruction = mockConstruction(EdgeDriverService.Builder.class, (mock, context) -> { + MockedConstruction edgeDriverServiceMockedConstruction = mockConstruction((mock, context) -> { when(mock.withBuildCheckDisabled(true)).thenReturn(mock); when(mock.withAppendLog(true)).thenReturn(mock); when(mock.withReadableTimestamp(true)).thenReturn(mock); @@ -106,9 +106,9 @@ void buildCapabilities() { when(driversConfig.isBiDi()).thenReturn(false); lenient().when(edgeConfig.isBiDi()).thenReturn(true); - MockedConstruction edgeOptionsMockedConstruction = mockConstruction(EdgeOptions.class, + MockedConstruction edgeOptionsMockedConstruction = mockConstruction( (mock, context) -> when(mock.addArguments(arguments)).thenReturn(mock)); - MockedConstruction loggingPreferencesMockedConstruction = mockConstruction(LoggingPreferences.class); + MockedConstruction loggingPreferencesMockedConstruction = mockConstruction(); edge.buildCapabilities(); final EdgeOptions edgeOptions = edgeOptionsMockedConstruction.constructed().getFirst(); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EspressoTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EspressoTest.java index f637dbdc..c3311af1 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EspressoTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/EspressoTest.java @@ -52,7 +52,7 @@ void buildCapabilities() { final String appPath = path.toString(); final String appAbsolutePath = path.toAbsolutePath().toString(); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(EspressoOptions.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -76,7 +76,7 @@ void buildCapabilities() { void buildCapabilitiesAbsoluteAppPath() { final String appPath = Path.of("absolute", "path").toAbsolutePath().toString(); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(EspressoOptions.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/FirefoxTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/FirefoxTest.java index 3453068a..b50cc780 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/FirefoxTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/FirefoxTest.java @@ -55,7 +55,7 @@ void getDriverServiceBuilder() { when(service.isTruncatedLogs()).thenReturn(true); when(service.getProfileRoot()).thenReturn(profileRoot); - MockedConstruction chromeDriverServiceMockedConstruction = mockConstruction(GeckoDriverService.Builder.class, (mock, context) -> { + MockedConstruction chromeDriverServiceMockedConstruction = mockConstruction((mock, context) -> { when(mock.withAllowHosts(allowHosts)).thenReturn(mock); when(mock.withLogLevel(FirefoxDriverLogLevel.TRACE)).thenReturn(mock); when(mock.withTruncatedLogs(true)).thenReturn(mock); @@ -86,7 +86,7 @@ void buildCapabilities() { when(driversConfig.isBiDi()).thenReturn(false); lenient().when(firefoxConfig.isBiDi()).thenReturn(true); - MockedConstruction firefoxOptionsMockedConstruction = mockConstruction(FirefoxOptions.class, (mock, context) -> { + MockedConstruction firefoxOptionsMockedConstruction = mockConstruction((mock, context) -> { when(mock.addArguments(arguments)).thenReturn(mock); when(mock.setBinary(binary)).thenReturn(mock); }); @@ -120,7 +120,7 @@ void buildCapabilitiesNoBinary() { when(driversConfig.isBiDi()).thenReturn(false); lenient().when(firefoxConfig.isBiDi()).thenReturn(true); - final MockedConstruction firefoxOptionsMockedConstruction = mockConstruction(FirefoxOptions.class, + final MockedConstruction firefoxOptionsMockedConstruction = mockConstruction( (mock, context) -> when(mock.addArguments(arguments)).thenReturn(mock)); firefox.buildCapabilities(); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/Mac2Test.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/Mac2Test.java index 9abb53ab..77a65ec7 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/Mac2Test.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/Mac2Test.java @@ -52,7 +52,7 @@ void beforeEach() { @Test @DisplayName("buildCapabilities should build a new instance of mac2Options and set the capabilities from the yaml on it") void buildCapabilitiesAbsoluteAppPath() { - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(Mac2Options.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -70,7 +70,7 @@ void buildCapabilitiesAbsoluteAppPath() { @Test @DisplayName("buildDriverFor should return a new instance of Mac2Driver for the provided url and the instance capabilities") void buildDriverFor() { - MockedConstruction mac2DriverMockedConstruction = mockConstruction(Mac2Driver.class, (mock, context) -> { + MockedConstruction mac2DriverMockedConstruction = mockConstruction((mock, context) -> { assertEquals(url, context.arguments().getFirst()); assertEquals(mac2Options, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/SafariTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/SafariTest.java index f8a9688f..c17011c7 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/SafariTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/SafariTest.java @@ -46,7 +46,7 @@ void getDriverServiceBuilder(final boolean logging) { when(safariConfig.getService()).thenReturn(service); when(service.isLogging()).thenReturn(logging); - MockedConstruction safariDriverServiceMockedConstruction = mockConstruction(SafariDriverService.Builder.class, + MockedConstruction safariDriverServiceMockedConstruction = mockConstruction( (mock, context) -> when(mock.withLogging(logging)).thenReturn(mock)); final DriverService.Builder driverServiceBuilder = safari.getDriverServiceBuilder(); @@ -58,7 +58,7 @@ void getDriverServiceBuilder(final boolean logging) { @Test @DisplayName("buildCapabilitiesFrom should build an instance of Safari based on the provided configuration") void buildCapabilitiesFrom() { - MockedConstruction safariOptionsMockedConstruction = mockConstruction(SafariOptions.class); + MockedConstruction safariOptionsMockedConstruction = mockConstruction(); safari.buildCapabilities(); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/UiAutomator2Test.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/UiAutomator2Test.java index 7653ea03..a50c56b5 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/UiAutomator2Test.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/UiAutomator2Test.java @@ -53,7 +53,7 @@ void buildCapabilities() { final String appPath = path.toString(); final String appAbsolutePath = path.toAbsolutePath().toString(); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(UiAutomator2Options.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -78,7 +78,7 @@ void buildCapabilities() { void buildCapabilitiesAbsoluteAppPath() { final String appPath = Path.of("absolute", "path").toAbsolutePath().toString(); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(UiAutomator2Options.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/WindowsTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/WindowsTest.java index 38ba4054..dc783d17 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/WindowsTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/WindowsTest.java @@ -81,7 +81,7 @@ void configureWaitsOf() { @Test @DisplayName("buildCapabilities should build a new instance of windowsOptions and set the capabilities from the yaml on it") void buildCapabilitiesAbsoluteAppPath() { - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(WindowsOptions.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -99,7 +99,7 @@ void buildCapabilitiesAbsoluteAppPath() { @Test @DisplayName("buildDriverFor should return a new instance of WindowsDriver for the provided url and the instance capabilities") void buildDriverFor() { - MockedConstruction windowsDriverMockedConstruction = mockConstruction(WindowsDriver.class, (mock, context) -> { + MockedConstruction windowsDriverMockedConstruction = mockConstruction((mock, context) -> { assertEquals(url, context.arguments().getFirst()); assertEquals(windowsOptions, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/XCUITestTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/XCUITestTest.java index b5e6d91d..cce2fc81 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/drivers/XCUITestTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/drivers/XCUITestTest.java @@ -58,7 +58,7 @@ void buildCapabilities() { final String appPath = path.toString(); final String appAbsolutePath = path.toAbsolutePath().toString(); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(XCUITestOptions.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -83,7 +83,7 @@ void buildCapabilities() { void buildCapabilitiesAbsoluteAppPath() { final String appPath = Path.of("absolute", "path").toAbsolutePath().toString(); - MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction(XCUITestOptions.class, + MockedConstruction desiredCapabilitiesMockedConstruction = mockConstruction( (mock, context) -> assertEquals(capabilities, context.arguments().getFirst())); when(configuration.getDrivers()).thenReturn(drivers); @@ -103,7 +103,7 @@ void buildCapabilitiesAbsoluteAppPath() { @Test @DisplayName("buildDriverFor should return a new instance of IOSDriver for the provided url and the instance capabilities") void buildDriverFor() { - MockedConstruction iosDriverMockedConstruction = mockConstruction(IOSDriver.class, (mock, context) -> { + MockedConstruction iosDriverMockedConstruction = mockConstruction((mock, context) -> { assertEquals(url, context.arguments().getFirst()); assertEquals(xcuiTestOptions, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ActionsResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ActionsResolverTest.java index ecc839b5..aff20ebb 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ActionsResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ActionsResolverTest.java @@ -38,7 +38,7 @@ void testResolveParameter() { when(extensionContext.getStore(GLOBAL)).thenReturn(store); when(store.get(DRIVER, WebDriver.class)).thenReturn(webDriver); - MockedConstruction mockedConstruction = mockConstruction(Actions.class); + MockedConstruction mockedConstruction = mockConstruction(); Actions actual = actionsResolver.resolveParameter(parameterContext, extensionContext); Actions actions = mockedConstruction.constructed().getFirst(); verify(store).put(ActionsResolver.ACTIONS, actions); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DownloadWaitResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DownloadWaitResolverTest.java index 7aba2385..bc4fbce0 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DownloadWaitResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DownloadWaitResolverTest.java @@ -66,7 +66,7 @@ void testResolveParameter() { when(driversConfiguration.getWaits()).thenReturn(waits); when(waits.getDownloadTimeout()).thenReturn(duration); - MockedConstruction mockedConstruction = mockConstruction(DownloadWait.class, (mock, context) -> { + MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(webDriver, context.arguments().getFirst()); assertEquals(duration, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DriverResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DriverResolverTest.java index 5789ca2f..7bbaceeb 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DriverResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/DriverResolverTest.java @@ -296,7 +296,7 @@ void resolveParameter() { when(autoWait.isEnabled()).thenReturn(false); //noinspection rawtypes - final MockedConstruction mockedConstruction = mockConstruction(EventFiringDecorator.class, (mock, executionContext) -> { + final MockedConstruction mockedConstruction = mockConstruction((mock, executionContext) -> { assertArrayEquals(List.of(eventsWebDriverListener).toArray(), (WebDriverListener[]) executionContext.arguments().getFirst()); when(mock.decorate(webDriver)).thenReturn(decoratedWebDriver); @@ -321,13 +321,13 @@ void resolveParameterAutoWait() { when(autoWaitWebDriverListenerBuilder.locatorPattern(pattern)).thenReturn(autoWaitWebDriverListenerBuilder); when(autoWaitWebDriverListenerBuilder.build()).thenReturn(autoWaitWebDriverListener); - final MockedConstruction actionsMockedConstruction = mockConstruction(Actions.class, (mock, executionContext) -> { + final MockedConstruction actionsMockedConstruction = mockConstruction((mock, executionContext) -> { assertEquals(webDriver, executionContext.arguments().getFirst()); when(autoWaitWebDriverListenerBuilder.actions(mock)).thenReturn(autoWaitWebDriverListenerBuilder); }); - final MockedConstruction webDriverWaitMockedConstruction = mockConstruction(WebDriverWait.class, (mock, executionContext) -> { + final MockedConstruction webDriverWaitMockedConstruction = mockConstruction((mock, executionContext) -> { assertEquals(webDriver, executionContext.arguments().getFirst()); assertEquals(autoWaitTimeout, executionContext.arguments().get(1)); @@ -335,7 +335,7 @@ void resolveParameterAutoWait() { }); //noinspection rawtypes - final MockedConstruction mockedConstruction = mockConstruction(EventFiringDecorator.class, (mock, executionContext) -> { + final MockedConstruction mockedConstruction = mockConstruction((mock, executionContext) -> { assertArrayEquals(List.of(autoWaitWebDriverListener, eventsWebDriverListener).toArray(), (WebDriverListener[]) executionContext.arguments().getFirst()); when(mock.decorate(webDriver)).thenReturn(decoratedWebDriver); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/FakerResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/FakerResolverTest.java index bda96148..354c36b0 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/FakerResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/FakerResolverTest.java @@ -62,7 +62,7 @@ void testResolveParameter() { when(faker.getLocale()).thenReturn(locale); when(faker.getRandom()).thenReturn(random); - final MockedConstruction mockedConstruction = mockConstruction(Faker.class, (mock, context) -> { + final MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(locale, context.arguments().getFirst()); assertEquals(random, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ImplicitWaitResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ImplicitWaitResolverTest.java index 1bf2dc52..d44b4493 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ImplicitWaitResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ImplicitWaitResolverTest.java @@ -67,7 +67,7 @@ void testResolveParameter() { when(drivers.getWaits()).thenReturn(waits); when(waits.getImplicit()).thenReturn(duration); - MockedConstruction mockedConstruction = mockConstruction(ImplicitWait.class, (mock, context) -> { + MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(webDriver, context.arguments().getFirst()); assertEquals(duration, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/PageLoadWaitResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/PageLoadWaitResolverTest.java index 0e0d0092..267e1312 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/PageLoadWaitResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/PageLoadWaitResolverTest.java @@ -66,7 +66,7 @@ void testResolveParameter() { when(drivers.getWaits()).thenReturn(waits); when(waits.getPageLoadTimeout()).thenReturn(duration); - MockedConstruction mockedConstruction = mockConstruction(PageLoadWait.class, (mock, context) -> { + MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(webDriver, context.arguments().getFirst()); assertEquals(duration, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ScriptWaitResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ScriptWaitResolverTest.java index 1215fee0..8d19f295 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ScriptWaitResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/ScriptWaitResolverTest.java @@ -66,7 +66,7 @@ void testResolveParameter() { when(drivers.getWaits()).thenReturn(waits); when(waits.getScriptTimeout()).thenReturn(duration); - MockedConstruction mockedConstruction = mockConstruction(ScriptWait.class, (mock, context) -> { + MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(webDriver, context.arguments().getFirst()); assertEquals(duration, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextInspectorResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextInspectorResolverTest.java index e2c1ea7d..0b2a7a0e 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextInspectorResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextInspectorResolverTest.java @@ -22,7 +22,7 @@ class BrowsingContextInspectorResolverTest { @Test @DisplayName("resolveParameterFor should return an instance of BrowsingContextInspector for the provided WebDriver") void resolveParameterFor() { - final MockedConstruction mockedConstruction = mockConstruction(BrowsingContextInspector.class, + final MockedConstruction mockedConstruction = mockConstruction( (mock, context) -> assertEquals(webDriver, context.arguments().getFirst())); final BrowsingContextInspector actual = browsingContextInspectorResolver.resolveParameterFor(webDriver); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextResolverTest.java index b3a3e3ce..fc981b0b 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/BrowsingContextResolverTest.java @@ -26,7 +26,7 @@ void resolveParameterFor() { final String windowHandle = "windowHandle"; when(webDriver.getWindowHandle()).thenReturn(windowHandle); - final MockedConstruction mockedConstruction = mockConstruction(BrowsingContext.class, (mock, context) -> { + final MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(webDriver, context.arguments().getFirst()); assertEquals(windowHandle, context.arguments().get(1)); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/LogInspectorResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/LogInspectorResolverTest.java index 6aba7a8c..f911ab03 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/LogInspectorResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/LogInspectorResolverTest.java @@ -22,7 +22,7 @@ class LogInspectorResolverTest { @Test @DisplayName("resolveParameterFor should return an instance of LogInspector for the provided WebDriver") void resolveParameterFor() { - final MockedConstruction mockedConstruction = mockConstruction(LogInspector.class, + final MockedConstruction mockedConstruction = mockConstruction( (mock, context) -> assertEquals(webDriver, context.arguments().getFirst())); final LogInspector actual = logInspectorResolver.resolveParameterFor(webDriver); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/NetworkResolverTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/NetworkResolverTest.java index 81b9db8f..9262ba49 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/NetworkResolverTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/extensions/resolvers/bidi/NetworkResolverTest.java @@ -22,7 +22,7 @@ class NetworkResolverTest { @Test @DisplayName("resolveParameterFor should return an instance of Network for the provided WebDriver") void resolveParameterFor() { - final MockedConstruction mockedConstruction = mockConstruction(Network.class, + final MockedConstruction mockedConstruction = mockConstruction( (mock, context) -> assertEquals(webDriver, context.arguments().getFirst())); final Network actual = networkResolver.resolveParameterFor(webDriver); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/internals/AppiumLogTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/internals/AppiumLogTest.java index 46bcd322..d1f9e4af 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/internals/AppiumLogTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/internals/AppiumLogTest.java @@ -31,7 +31,7 @@ class AppiumLogTest { @BeforeEach void beforeEach() { - stringBufferMockedConstruction = mockConstruction(StringBuffer.class); + stringBufferMockedConstruction = mockConstruction(); Reflections.setField("stringBuffer", appiumLog, new StringBuffer(LOG_MESSAGE)); } diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/internals/DriverLogTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/internals/DriverLogTest.java index f02b8f19..92058584 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/internals/DriverLogTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/internals/DriverLogTest.java @@ -31,7 +31,7 @@ class DriverLogTest { @BeforeEach void beforeEach() { - stringBufferMockedConstruction = mockConstruction(StringBuffer.class); + stringBufferMockedConstruction = mockConstruction(); Reflections.setField("stringBuffer", driverLog, new StringBuffer(LOG_MESSAGE)); } diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/internals/jackson/deserializers/RandomDeserializerTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/internals/jackson/deserializers/RandomDeserializerTest.java index be7703d4..5955ed44 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/internals/jackson/deserializers/RandomDeserializerTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/internals/jackson/deserializers/RandomDeserializerTest.java @@ -41,7 +41,7 @@ void deserialize() throws IOException { long value = 42L; when(jsonParser.getValueAsLong()).thenReturn(value); - final MockedConstruction mockedConstruction = mockConstruction(Random.class, (mock, context) -> assertEquals(value, context.arguments().getFirst())); + final MockedConstruction mockedConstruction = mockConstruction((mock, context) -> assertEquals(value, context.arguments().getFirst())); final Random actual = randomDeserializer.deserialize(jsonParser, deserializationContext); final Random expected = mockedConstruction.constructed().getFirst(); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/internals/page_factory/SpectrumFieldDecoratorTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/internals/page_factory/SpectrumFieldDecoratorTest.java index f58c514d..2c7228ec 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/internals/page_factory/SpectrumFieldDecoratorTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/internals/page_factory/SpectrumFieldDecoratorTest.java @@ -78,7 +78,7 @@ void decorate() { doReturn(WebElement.class).when(field).getType(); when(field.isAnnotationPresent(Secured.class)).thenReturn(true); - final MockedConstruction mockedConstruction = mockConstruction(SpectrumLocatingElementHandler.class, (mock, context) -> { + final MockedConstruction mockedConstruction = mockConstruction((mock, context) -> { assertEquals(locator, context.arguments().getFirst()); assertTrue((boolean) context.arguments().get(1)); }); @@ -105,7 +105,7 @@ void decorateList() { when(parameterizedType.getActualTypeArguments()).thenReturn(new Type[]{WebElement.class}); when(field.getAnnotation(FindBy.class)).thenReturn(findBy); - final MockedConstruction mockedConstruction = mockConstruction(LocatingElementListHandler.class, + final MockedConstruction mockedConstruction = mockConstruction( (mock, context) -> assertEquals(locator, context.arguments().getFirst())); final MockedStatic proxyMockedStatic = mockStatic(); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/utils/ContextManagerTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/utils/ContextManagerTest.java index d30fa2e1..d816bbb1 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/utils/ContextManagerTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/utils/ContextManagerTest.java @@ -56,7 +56,7 @@ void initFor() { void initForContext() { final String uniqueId = "uniqueId"; final Map testContexts = new HashMap<>(); - final MockedConstruction testContextMockedConstruction = mockConstruction(TestContext.class); + final MockedConstruction testContextMockedConstruction = mockConstruction(); Reflections.setField("testContexts", contextManager, testContexts); when(context.getUniqueId()).thenReturn(uniqueId); @@ -123,7 +123,7 @@ void get() { void getNew() { final String uniqueId = "uniqueId"; final Map testContexts = new HashMap<>(); - final MockedConstruction testContextMockedConstruction = mockConstruction(TestContext.class); + final MockedConstruction testContextMockedConstruction = mockConstruction(); when(context.getUniqueId()).thenReturn(uniqueId); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/utils/ExtentReporterTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/utils/ExtentReporterTest.java index a0465a7a..b3c81533 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/utils/ExtentReporterTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/utils/ExtentReporterTest.java @@ -280,9 +280,9 @@ void sessionOpened() { doReturn(extentSparkReporterConfigBuilder).when(extentSparkReporterConfigBuilder).js(internalJs + js); doReturn(extentSparkReporterConfig).when(extentSparkReporterConfigBuilder).build(); - MockedConstruction extentReportsMockedConstruction = mockConstruction(ExtentReports.class); + MockedConstruction extentReportsMockedConstruction = mockConstruction(); - MockedConstruction extentSparkReporterMockedConstruction = mockConstruction(ExtentSparkReporter.class, (mock, executionContext) -> { + MockedConstruction extentSparkReporterMockedConstruction = mockConstruction((mock, executionContext) -> { assertEquals(absolutePathToStringReplaced, executionContext.arguments().getFirst()); when(mock.config(extentSparkReporterConfig)).thenReturn(mock); }); diff --git a/spectrum/src/test/java/io/github/giulong/spectrum/utils/FreeMarkerWrapperTest.java b/spectrum/src/test/java/io/github/giulong/spectrum/utils/FreeMarkerWrapperTest.java index f207ef8d..fd04340f 100644 --- a/spectrum/src/test/java/io/github/giulong/spectrum/utils/FreeMarkerWrapperTest.java +++ b/spectrum/src/test/java/io/github/giulong/spectrum/utils/FreeMarkerWrapperTest.java @@ -60,14 +60,9 @@ void sessionOpened() { when(freeMarker.getLocale()).thenReturn(US); when(freeMarker.getNumberFormat()).thenReturn(numberFormat); - MockedConstruction versionMockedConstruction = mockConstruction(Version.class, context -> { - assertEquals(version, context.arguments().getFirst()); - return withSettings(); - }); - MockedConstruction configurationMockedConstruction = mockConstruction(freemarker.template.Configuration.class, context -> { - assertEquals(versionMockedConstruction.constructed().getFirst(), context.arguments().getFirst()); - return withSettings(); - }); + MockedConstruction versionMockedConstruction = mockConstruction((mock, context) -> assertEquals(version, context.arguments().getFirst())); + MockedConstruction configurationMockedConstruction = mockConstruction( + (mock, context) -> assertEquals(versionMockedConstruction.constructed().getFirst(), context.arguments().getFirst())); freeMarkerWrapper.sessionOpened(); assertEquals(Reflections.getFieldValue("configuration", freeMarkerWrapper), configurationMockedConstruction.constructed().getFirst()); @@ -82,17 +77,13 @@ void interpolate() throws TemplateException, IOException { final String source = "source"; final Map vars = Map.of("one", "value"); - MockedConstruction stringReaderMockedConstruction = mockConstruction(StringReader.class, context -> { - assertEquals(source, context.arguments().getFirst()); - return withSettings(); - }); - MockedConstruction