Skip to content

Commit

Permalink
[grid]: Start to bring the two SessionFactory classes into line
Browse files Browse the repository at this point in the history
By making them start to implement the same set of interfaces.
  • Loading branch information
shs96c committed Mar 19, 2019
1 parent 93a3292 commit 04cdb89
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
import org.openqa.selenium.grid.data.CreateSessionRequest;

import java.util.Optional;
import java.util.function.Function;
import java.util.function.Predicate;

public interface SessionFactory {
boolean isSupporting(Capabilities capabilities);

Optional<ActiveSession> apply(CreateSessionRequest sessionRequest);
public interface SessionFactory
extends Predicate<Capabilities>, Function<CreateSessionRequest, Optional<ActiveSession>> {
}
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ public Factory(Predicate<Capabilities> key, String serviceClassName) {
}

@Override
public boolean isSupporting(Capabilities capabilities) {
public boolean test(Capabilities capabilities) {
return key.test(capabilities);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,9 @@ private static Predicate<Capabilities> containsKey(Pattern pattern) {
}

@Override
public boolean isSupporting(Capabilities capabilities) {
public boolean test(Capabilities capabilities) {
return factories.stream()
.map(factory -> factory.isSupporting(capabilities))
.map(factory -> factory.test(capabilities))
.reduce(Boolean::logicalOr)
.orElse(false);
}
Expand All @@ -174,7 +174,7 @@ public boolean isSupporting(Capabilities capabilities) {
public Optional<ActiveSession> apply(CreateSessionRequest sessionRequest) {
LOG.info("Capabilities are: " + new Json().toJson(sessionRequest.getCapabilities()));
return factories.stream()
.filter(factory -> factory.isSupporting(sessionRequest.getCapabilities()))
.filter(factory -> factory.test(sessionRequest.getCapabilities()))
.peek(factory -> LOG.info(String.format("Matched factory %s", factory)))
.map(factory -> factory.apply(sessionRequest))
.filter(Optional::isPresent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ public Factory(DriverProvider provider) {


@Override
public boolean isSupporting(Capabilities capabilities) {
public boolean test(Capabilities capabilities) {
return provider.canCreateDriverInstanceFor(capabilities);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public ActiveSession createNewSession(NewSessionPayload payload) {
return caps;
})
.map(caps -> factories.stream()
.filter(factory -> factory.isSupporting(caps))
.filter(factory -> factory.test(caps))
.map(factory -> factory.apply(
new CreateSessionRequest(
payload.getDownstreamDialects(),
Expand Down Expand Up @@ -90,7 +90,7 @@ public static class Builder {
private List<SessionFactory> factories = new LinkedList<>();
private SessionFactory fallback = new SessionFactory() {
@Override
public boolean isSupporting(Capabilities capabilities) {
public boolean test(Capabilities capabilities) {
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public void canBindNewFactoriesAtRunTime() {
"cheese".equals(caps.getBrowserName()),
new SessionFactory() {
@Override
public boolean isSupporting(Capabilities capabilities) {
public boolean test(Capabilities capabilities) {
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ public class NewSessionPipelineTest {
@Test
public void shouldCallSessionFactory() {
SessionFactory factory = mock(SessionFactory.class);
when(factory.isSupporting(any())).thenReturn(true);
when(factory.test(any())).thenReturn(true);
SessionFactory fallback = mock(SessionFactory.class);
when(fallback.isSupporting(any())).thenReturn(true);
when(fallback.test(any())).thenReturn(true);
ActiveSession session = mock(ActiveSession.class);
when(factory.apply(any())).thenReturn(Optional.of(session));

Expand Down Expand Up @@ -82,7 +82,7 @@ public void shouldBeAbleToFallBack() {
@Test
public void shouldUseMutators() {
SessionFactory factory = mock(SessionFactory.class);
when(factory.isSupporting(any())).thenReturn(true);
when(factory.test(any())).thenReturn(true);
ActiveSession session = mock(ActiveSession.class);
when(factory.apply(any())).thenReturn(Optional.of(session));
FirefoxMutator mutator = new FirefoxMutator(new ImmutableCapabilities(
Expand All @@ -106,12 +106,12 @@ public void shouldUseMutators() {
@Test
public void shouldNotUseFactoriesThatDoNotSupportTheCapabilities() {
SessionFactory toBeIgnored = mock(SessionFactory.class);
when(toBeIgnored.isSupporting(any())).thenReturn(false);
when(toBeIgnored.test(any())).thenReturn(false);
when(toBeIgnored.apply(any())).thenThrow(new AssertionError("Must not be called"));

ActiveSession session = mock(ActiveSession.class);
SessionFactory toBeUsed = mock(SessionFactory.class);
when(toBeUsed.isSupporting(any())).thenReturn(true);
when(toBeUsed.test(any())).thenReturn(true);
when(toBeUsed.apply(any())).thenReturn(Optional.of(session));

NewSessionPipeline pipeline = NewSessionPipeline.builder()
Expand All @@ -123,6 +123,6 @@ public void shouldNotUseFactoriesThatDoNotSupportTheCapabilities() {
pipeline.createNewSession(NewSessionPayload.create(new ImmutableCapabilities()));

assertEquals(session, seen);
verify(toBeIgnored, atLeast(1)).isSupporting(any());
verify(toBeIgnored, atLeast(1)).test(any());
}
}

0 comments on commit 04cdb89

Please sign in to comment.