This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
The following commit(s) were added to refs/heads/master by this push: new 222e2e9 - Testing of the Default message types in driver base 222e2e9 is described below commit 222e2e95da32e20573623d33abc33ff97f85696e Author: Christofer Dutz <christofer.d...@c-ware.de> AuthorDate: Sat Nov 10 17:45:59 2018 +0100 - Testing of the Default message types in driver base --- .../PlcUsernamePasswordAuthentication.java | 12 ++- .../plc4x/java/api/messages/PlcFieldRequest.java | 4 +- .../PlcUsernamePasswordAuthenticationTest.java | 2 +- .../java/ads/model/AdsSubscriptionHandle.java | 1 + plc4j/protocols/driver-bases/base/pom.xml | 6 ++ .../java/base/messages/DefaultPlcReadRequest.java | 4 +- .../messages/DefaultPlcSubscriptionRequest.java | 8 +- .../java/base/messages/DefaultPlcWriteRequest.java | 8 +- .../base/messages/InternalPlcFieldRequest.java | 4 +- .../messages/InternalPlcSubscriptionRequest.java | 7 +- .../base/messages/InternalPlcWriteRequest.java | 7 +- .../base/model/DefaultPlcConsumerRegistration.java | 24 +++--- .../base/model/DefaultPlcSubscriptionHandle.java | 1 + .../model/InternalPlcConsumerRegistration.java | 2 + .../base/messages/DefaultPlcReadRequestTest.java | 6 +- .../DefaultPlcSubscriptionRequestTest.java | 10 +-- .../model/DefaultPlcConsumerRegistrationTest.java | 88 ++++++++++++++++++++++ .../model/DefaultPlcSubscriptionHandleTest.java | 72 ++++++++++++++++++ .../java/base/model/SubscriptionPlcFieldTest.java | 68 +++++++++++++++++ 19 files changed, 290 insertions(+), 44 deletions(-) diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java index b73b2ee..a02b24e 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthentication.java @@ -41,16 +41,20 @@ public class PlcUsernamePasswordAuthentication implements PlcAuthentication { } @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + public final boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof PlcUsernamePasswordAuthentication)) { + return false; + } PlcUsernamePasswordAuthentication that = (PlcUsernamePasswordAuthentication) o; return Objects.equals(username, that.username) && Objects.equals(password, that.password); } @Override - public int hashCode() { + public final int hashCode() { return Objects.hash(username, password); } diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java index 85263b7..2ef86cc 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java @@ -21,7 +21,7 @@ package org.apache.plc4x.java.api.messages; import org.apache.plc4x.java.api.model.PlcField; import java.util.LinkedHashSet; -import java.util.LinkedList; +import java.util.List; import java.util.concurrent.CompletableFuture; public interface PlcFieldRequest extends PlcRequest { @@ -35,6 +35,6 @@ public interface PlcFieldRequest extends PlcRequest { PlcField getField(String name); - LinkedList<PlcField> getFields(); + List<PlcField> getFields(); } diff --git a/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java b/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java index 1932932..0b2c62d 100644 --- a/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java +++ b/plc4j/api/src/test/java/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java @@ -53,7 +53,7 @@ public class PlcUsernamePasswordAuthenticationTest { @Test public void equalsContract() { - EqualsVerifier.forClass(PlcUsernamePasswordAuthentication.class).usingGetClass().verify(); + EqualsVerifier.forClass(PlcUsernamePasswordAuthentication.class).verify(); } } \ No newline at end of file diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java index aa9b9d5..e549097 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/model/AdsSubscriptionHandle.java @@ -81,4 +81,5 @@ public class AdsSubscriptionHandle extends DefaultPlcSubscriptionHandle { ", notificationHandle=" + notificationHandle + "} " + super.toString(); } + } diff --git a/plc4j/protocols/driver-bases/base/pom.xml b/plc4j/protocols/driver-bases/base/pom.xml index 58b236d..394c2de 100644 --- a/plc4j/protocols/driver-bases/base/pom.xml +++ b/plc4j/protocols/driver-bases/base/pom.xml @@ -83,6 +83,12 @@ <version>1.6.1</version> <scope>test</scope> </dependency> + <dependency> + <groupId>nl.jqno.equalsverifier</groupId> + <artifactId>equalsverifier</artifactId> + <version>3.0.2</version> + <scope>test</scope> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java index b08fd85..063f105 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java @@ -61,12 +61,12 @@ public class DefaultPlcReadRequest implements InternalPlcReadRequest, InternalPl } @Override - public LinkedList<PlcField> getFields() { + public List<PlcField> getFields() { return new LinkedList<>(fields.values()); } @Override - public LinkedList<Pair<String, PlcField>> getNamedFields() { + public List<Pair<String, PlcField>> getNamedFields() { return fields.entrySet() .stream() .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue())) diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java index 48ded49..5fca8a8 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java @@ -68,12 +68,12 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq } @Override - public LinkedList<PlcField> getFields() { + public List<PlcField> getFields() { return fields.values().stream().map(SubscriptionPlcField::getPlcField).collect(Collectors.toCollection(LinkedList::new)); } @Override - public LinkedList<SubscriptionPlcField> getSubscriptionFields() { + public List<SubscriptionPlcField> getSubscriptionFields() { return new LinkedList<>(fields.values()); } @@ -83,7 +83,7 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq } @Override - public LinkedList<Pair<String, PlcField>> getNamedFields() { + public List<Pair<String, PlcField>> getNamedFields() { return fields.entrySet() .stream() .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue().getPlcField())) @@ -91,7 +91,7 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq } @Override - public LinkedList<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields() { + public List<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields() { return fields.entrySet() .stream() .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue())) diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java index 9ede855..67dc29f 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java @@ -70,7 +70,7 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal } @Override - public LinkedList<PlcField> getFields() { + public List<PlcField> getFields() { return fields.values().stream().map(Pair::getKey).collect(Collectors.toCollection(LinkedList::new)); } @@ -79,12 +79,12 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal } @Override - public LinkedList<BaseDefaultFieldItem> getFieldItems() { + public List<BaseDefaultFieldItem> getFieldItems() { return fields.values().stream().map(Pair::getValue).collect(Collectors.toCollection(LinkedList::new)); } @Override - public LinkedList<Pair<String, PlcField>> getNamedFields() { + public List<Pair<String, PlcField>> getNamedFields() { return fields.entrySet() .stream() .map(stringPairEntry -> @@ -96,7 +96,7 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal } @Override - public LinkedList<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples() { + public List<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples() { return fields.entrySet() .stream() .map(stringPairEntry -> diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java index 30c440e..2e869c3 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java @@ -22,10 +22,10 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.plc4x.java.api.messages.PlcFieldRequest; import org.apache.plc4x.java.api.model.PlcField; -import java.util.LinkedList; +import java.util.List; public interface InternalPlcFieldRequest extends PlcFieldRequest, InternalPlcRequest { - LinkedList<Pair<String, PlcField>> getNamedFields(); + List<Pair<String, PlcField>> getNamedFields(); } diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java index 8901fef..1e727ad 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcSubscriptionRequest.java @@ -23,13 +23,14 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionRequest; import org.apache.plc4x.java.base.model.SubscriptionPlcField; import java.util.LinkedHashMap; -import java.util.LinkedList; +import java.util.List; public interface InternalPlcSubscriptionRequest extends PlcSubscriptionRequest, InternalPlcFieldRequest { - LinkedList<SubscriptionPlcField> getSubscriptionFields(); + List<SubscriptionPlcField> getSubscriptionFields(); LinkedHashMap<String, SubscriptionPlcField> getSubscriptionPlcFieldMap(); - LinkedList<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields(); + List<Pair<String, SubscriptionPlcField>> getNamedSubscriptionFields(); + } diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java index af717d7..5a68f63 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java @@ -23,13 +23,14 @@ import org.apache.plc4x.java.api.messages.PlcWriteRequest; import org.apache.plc4x.java.api.model.PlcField; import org.apache.plc4x.java.base.messages.items.BaseDefaultFieldItem; -import java.util.LinkedList; +import java.util.List; public interface InternalPlcWriteRequest extends PlcWriteRequest, InternalPlcRequest { BaseDefaultFieldItem getFieldItem(String name); - LinkedList<BaseDefaultFieldItem> getFieldItems(); + List<BaseDefaultFieldItem> getFieldItems(); + + List<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples(); - LinkedList<Triple<String, PlcField, BaseDefaultFieldItem>> getNamedFieldTriples(); } diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java index 55b1cf9..dfcef84 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistration.java @@ -30,7 +30,7 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist private final PlcSubscriber plcSubscriber; - private final Collection<? extends InternalPlcSubscriptionHandle> handles; + private final Collection<InternalPlcSubscriptionHandle> handles; private final int consumerHash; @@ -46,12 +46,17 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist } @Override - public Collection<? extends InternalPlcSubscriptionHandle> getAssociatedHandles() { + public Collection<InternalPlcSubscriptionHandle> getAssociatedHandles() { return handles; } @Override - public boolean equals(Object o) { + public void unregister() { + plcSubscriber.unregister(this); + } + + @Override + public final boolean equals(Object o) { if (this == o) { return true; } @@ -59,13 +64,14 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist return false; } DefaultPlcConsumerRegistration that = (DefaultPlcConsumerRegistration) o; - return consumerHash == that.consumerHash && - Objects.equals(handles, that.handles); + return Objects.equals(plcSubscriber, that.plcSubscriber) && + Objects.equals(handles, that.handles) && + consumerHash == that.consumerHash; } @Override - public int hashCode() { - return Objects.hash(handles, consumerHash); + public final int hashCode() { + return Objects.hash(plcSubscriber, handles, consumerHash); } @Override @@ -76,8 +82,4 @@ public class DefaultPlcConsumerRegistration implements InternalPlcConsumerRegist '}'; } - @Override - public void unregister() { - plcSubscriber.unregister(this); - } } diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java index 3eb685b..ac1a1d5 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandle.java @@ -63,4 +63,5 @@ public class DefaultPlcSubscriptionHandle implements InternalPlcSubscriptionHand "plcSubscriber=" + plcSubscriber + '}'; } + } diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java index bddb889..3b222b4 100644 --- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java +++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/model/InternalPlcConsumerRegistration.java @@ -23,7 +23,9 @@ import org.apache.plc4x.java.api.model.PlcConsumerRegistration; import java.util.Collection; public interface InternalPlcConsumerRegistration extends PlcConsumerRegistration { + int getConsumerHash(); Collection<? extends InternalPlcSubscriptionHandle> getAssociatedHandles(); + } diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java index 6799a62..5bb1f30 100644 --- a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java +++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequestTest.java @@ -30,7 +30,7 @@ import org.junit.jupiter.api.Test; import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; -import java.util.LinkedList; +import java.util.List; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNull.notNullValue; @@ -78,7 +78,7 @@ class DefaultPlcReadRequestTest { @Test void getFields() { - LinkedList<PlcField> fields = SUT.getFields(); + List<PlcField> fields = SUT.getFields(); assertThat(fields, notNullValue()); assertThat(fields.size(), equalTo(1)); PlcField field = fields.iterator().next(); @@ -87,7 +87,7 @@ class DefaultPlcReadRequestTest { @Test void getNamedFields() { - LinkedList<Pair<String, PlcField>> namedFields = SUT.getNamedFields(); + List<Pair<String, PlcField>> namedFields = SUT.getNamedFields(); assertThat(namedFields, notNullValue()); assertThat(namedFields.size(), equalTo(1)); Pair<String, PlcField> entry = namedFields.iterator().next(); diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java index 2f8a363..484c33e 100644 --- a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java +++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequestTest.java @@ -33,7 +33,7 @@ import java.time.temporal.ChronoUnit; import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; -import java.util.LinkedList; +import java.util.List; import static org.hamcrest.core.IsEqual.equalTo; import static org.hamcrest.core.IsNull.notNullValue; @@ -88,7 +88,7 @@ class DefaultPlcSubscriptionRequestTest { @Test void getFields() { - LinkedList<PlcField> fields = SUT.getFields(); + List<PlcField> fields = SUT.getFields(); assertThat(fields, notNullValue()); assertThat(fields.size(), equalTo(1)); PlcField field = fields.iterator().next(); @@ -97,7 +97,7 @@ class DefaultPlcSubscriptionRequestTest { @Test void getSubscriptionFields() { - LinkedList<SubscriptionPlcField> fields = SUT.getSubscriptionFields(); + List<SubscriptionPlcField> fields = SUT.getSubscriptionFields(); assertThat(fields, notNullValue()); assertThat(fields.size(), equalTo(1)); SubscriptionPlcField field = fields.iterator().next(); @@ -114,7 +114,7 @@ class DefaultPlcSubscriptionRequestTest { @Test void getNamedFields() { - LinkedList<Pair<String, PlcField>> namedFields = SUT.getNamedFields(); + List<Pair<String, PlcField>> namedFields = SUT.getNamedFields(); assertThat(namedFields, notNullValue()); assertThat(namedFields.size(), equalTo(1)); Pair<String, PlcField> entry = namedFields.iterator().next(); @@ -124,7 +124,7 @@ class DefaultPlcSubscriptionRequestTest { @Test void getNamedSubscriptionFields() { - LinkedList<Pair<String, SubscriptionPlcField>> namedFields = SUT.getNamedSubscriptionFields(); + List<Pair<String, SubscriptionPlcField>> namedFields = SUT.getNamedSubscriptionFields(); assertThat(namedFields, notNullValue()); assertThat(namedFields.size(), equalTo(1)); Pair<String, SubscriptionPlcField> entry = namedFields.iterator().next(); diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java new file mode 100644 index 0000000..29696fa --- /dev/null +++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcConsumerRegistrationTest.java @@ -0,0 +1,88 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ + +package org.apache.plc4x.java.base.model; + +import nl.jqno.equalsverifier.EqualsVerifier; +import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent; +import org.apache.plc4x.java.base.messages.PlcSubscriber; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.Collection; +import java.util.function.Consumer; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.hamcrest.core.IsNull.notNullValue; +import static org.junit.Assert.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +@ExtendWith(MockitoExtension.class) +class DefaultPlcConsumerRegistrationTest { + + @Mock + private PlcSubscriber subscriber; + @Mock + private Consumer<PlcSubscriptionEvent> consumer; + @Mock + private InternalPlcSubscriptionHandle subscriptionHandle; + private DefaultPlcConsumerRegistration SUT; + + @BeforeEach + void setUp() { + SUT = new DefaultPlcConsumerRegistration(subscriber, consumer, subscriptionHandle); + } + + @Test + void getConsumerHash() { + int consumerHash = SUT.getConsumerHash(); + assertThat(consumerHash, equalTo(consumer.hashCode())); + } + + @Test + void getAssociatedHandles() { + Collection<InternalPlcSubscriptionHandle> associatedHandles = SUT.getAssociatedHandles(); + assertThat(associatedHandles, notNullValue()); + assertThat(associatedHandles.size(), equalTo(1)); + assertThat(associatedHandles.iterator().next(), equalTo(subscriptionHandle)); + } + + @Test + public void unregister() { + SUT.unregister(); + verify(subscriber, times(1)).unregister(any()); + } + + @Test + public void testToString() { + String s = SUT.toString(); + assertThat(s, notNullValue()); + } + + @Test + void equals() { + EqualsVerifier.forClass(DefaultPlcConsumerRegistration.class).verify(); + } + +} \ No newline at end of file diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java new file mode 100644 index 0000000..9f8ef53 --- /dev/null +++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/DefaultPlcSubscriptionHandleTest.java @@ -0,0 +1,72 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ + +package org.apache.plc4x.java.base.model; + +import nl.jqno.equalsverifier.EqualsVerifier; +import nl.jqno.equalsverifier.Warning; +import org.apache.plc4x.java.api.messages.PlcSubscriptionEvent; +import org.apache.plc4x.java.base.messages.PlcSubscriber; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.Collections; +import java.util.function.Consumer; + +import static org.hamcrest.core.IsNull.notNullValue; +import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +@ExtendWith(MockitoExtension.class) +class DefaultPlcSubscriptionHandleTest { + + @Mock + private PlcSubscriber subscriber; + @Mock + private Consumer<PlcSubscriptionEvent> consumer; + private DefaultPlcSubscriptionHandle SUT; + + @BeforeEach + void setUp() { + SUT = new DefaultPlcSubscriptionHandle(subscriber); + } + + @Test + void register() { + SUT.register(consumer); + verify(subscriber, times(1)).register(consumer, Collections.singletonList(SUT)); + } + + @Test + public void testToString() { + String s = SUT.toString(); + assertThat(s, notNullValue()); + } + + @Test + void equals() { + EqualsVerifier.forClass(DefaultPlcSubscriptionHandle.class) + .suppress(Warning.STRICT_INHERITANCE).verify(); + } + +} \ No newline at end of file diff --git a/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java new file mode 100644 index 0000000..d5fc38b --- /dev/null +++ b/plc4j/protocols/driver-bases/base/src/test/java/org/apache/plc4x/java/base/model/SubscriptionPlcFieldTest.java @@ -0,0 +1,68 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ + +package org.apache.plc4x.java.base.model; + +import org.apache.plc4x.java.api.model.PlcField; +import org.apache.plc4x.java.api.types.PlcSubscriptionType; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.time.Duration; +import java.time.temporal.ChronoUnit; +import java.util.Optional; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +@ExtendWith(MockitoExtension.class) +class SubscriptionPlcFieldTest { + + @Mock + private PlcField field; + private SubscriptionPlcField SUT; + + @BeforeEach + void setUp() { + SUT = new SubscriptionPlcField(PlcSubscriptionType.CYCLIC, field, Duration.of(1, ChronoUnit.SECONDS)); + } + + @Test + void getPlcSubscriptionType() { + PlcSubscriptionType plcSubscriptionType = SUT.getPlcSubscriptionType(); + assertThat(plcSubscriptionType, equalTo(PlcSubscriptionType.CYCLIC)); + } + + @Test + void getPlcField() { + PlcField plcField = SUT.getPlcField(); + assertThat(plcField, equalTo(field)); + } + + @Test + void getDuration() { + Optional<Duration> durationOptional = SUT.getDuration(); + assertThat(durationOptional.isPresent(), equalTo(true)); + assertThat(durationOptional.get(), equalTo(Duration.of(1, ChronoUnit.SECONDS))); + } + +} \ No newline at end of file