|
1 | | -/******************************************************************************* |
2 | | - * Copyright (C) 2024 DFKI GmbH (https://www.dfki.de/en/web) |
3 | | - * |
4 | | - * Permission is hereby granted, free of charge, to any person obtaining |
5 | | - * a copy of this software and associated documentation files (the |
6 | | - * "Software"), to deal in the Software without restriction, including |
7 | | - * without limitation the rights to use, copy, modify, merge, publish, |
8 | | - * distribute, sublicense, and/or sell copies of the Software, and to |
9 | | - * permit persons to whom the Software is furnished to do so, subject to |
10 | | - * the following conditions: |
11 | | - * |
12 | | - * The above copyright notice and this permission notice shall be |
13 | | - * included in all copies or substantial portions of the Software. |
14 | | - * |
15 | | - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
16 | | - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
17 | | - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
18 | | - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
19 | | - * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
20 | | - * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
21 | | - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
22 | | - * |
23 | | - * SPDX-License-Identifier: MIT |
24 | | - * |
25 | | - ******************************************************************************/ |
26 | | -package org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka; |
27 | | - |
28 | | -import java.util.concurrent.TimeUnit; |
29 | | - |
30 | | -import org.eclipse.digitaltwin.aas4j.v3.dataformat.core.SerializationException; |
31 | | -import org.eclipse.digitaltwin.aas4j.v3.model.Submodel; |
32 | | -import org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka.events.model.SubmodelEvent; |
33 | | -import org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka.events.model.SubmodelEventType; |
34 | | -import org.junit.After; |
35 | | -import org.junit.Assert; |
36 | | -import org.junit.Before; |
37 | | -import org.junit.Test; |
38 | | -import org.junit.runner.RunWith; |
39 | | -import org.springframework.beans.factory.annotation.Autowired; |
40 | | -import org.springframework.boot.test.context.SpringBootTest; |
41 | | -import org.springframework.context.ApplicationContext; |
42 | | -import org.springframework.context.annotation.ComponentScan; |
43 | | -import org.springframework.context.annotation.Import; |
44 | | -import org.springframework.context.event.ContextClosedEvent; |
45 | | -import org.springframework.test.annotation.DirtiesContext; |
46 | | -import org.springframework.test.annotation.DirtiesContext.ClassMode; |
47 | | -import org.springframework.test.context.ActiveProfiles; |
48 | | -import org.springframework.test.context.ContextConfiguration; |
49 | | -import org.springframework.test.context.TestPropertySource; |
50 | | -import org.springframework.test.context.junit4.SpringRunner; |
51 | | - |
52 | | -/** |
53 | | - * @author geso02 (Sonnenberg DFKI GmbH) |
54 | | - */ |
55 | | -@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) |
56 | | -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) |
57 | | -@ComponentScan(basePackages = { "org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka" }) |
58 | | -@RunWith(SpringRunner.class) |
59 | | -@ActiveProfiles("test-submodel") |
60 | | -@ContextConfiguration(classes = {SubmodelServiceTestComponent.class}) |
61 | | -@TestPropertySource(properties = { "spring.kafka.bootstrap-servers=localhost:9092", |
62 | | - KafkaSubmodelServiceFeature.FEATURENAME + ".preservationlevel=REMOVE_BLOB_VALUE", |
63 | | - KafkaSubmodelServiceFeature.FEATURENAME + ".enabled=true", |
64 | | - KafkaSubmodelServiceFeature.FEATURENAME + ".topic.name=" + SubmodelEventKafkaListener.TOPIC_NAME, |
65 | | - KafkaSubmodelServiceApplicationListener.SUBMODEL_EVENTS_ACTIVATED + "=true" |
66 | | -}) |
67 | | -@Import(SubmodelEventKafkaListener.class) |
68 | | -public class KafkaSubmodelServiceSubmodelEventsIntegrationTest { |
69 | | - |
70 | | - @Autowired |
71 | | - private SubmodelEventKafkaListener listener; |
72 | | - |
73 | | - @Autowired |
74 | | - private Submodel submodel; |
75 | | - |
76 | | - @Autowired |
77 | | - private ApplicationContext context; |
78 | | - |
79 | | - @Before |
80 | | - public void awaitAssignment() throws InterruptedException { |
81 | | - listener.awaitTopicAssignment(); |
82 | | - } |
83 | | - |
84 | | - @Test |
85 | | - public void testSubmodelEvents() throws InterruptedException { |
86 | | - // we expect the "onStartup" submodel created event |
87 | | - SubmodelEvent evt = listener.next(); |
88 | | - Assert.assertEquals(SubmodelEventType.SM_CREATED, evt.getType()); |
89 | | - Assert.assertEquals(submodel.getId(), evt.getId()); |
90 | | - Assert.assertEquals(submodel, evt.getSubmodel()); |
91 | | - Assert.assertNull(evt.getSmElementPath()); |
92 | | - Assert.assertNull(evt.getSmElement()); |
93 | | - |
94 | | - // simulate closing |
95 | | - context.publishEvent(new ContextClosedEvent(context)); |
96 | | - evt = listener.next(); |
97 | | - Assert.assertEquals(SubmodelEventType.SM_DELETED, evt.getType()); |
98 | | - Assert.assertEquals(submodel.getId(), evt.getId()); |
99 | | - Assert.assertNull(evt.getSubmodel()); |
100 | | - Assert.assertNull(evt.getSmElementPath()); |
101 | | - Assert.assertNull(evt.getSmElement()); |
102 | | - } |
103 | | - |
104 | | - |
105 | | -} |
| 1 | +///******************************************************************************* |
| 2 | +// * Copyright (C) 2024 DFKI GmbH (https://www.dfki.de/en/web) |
| 3 | +// * |
| 4 | +// * Permission is hereby granted, free of charge, to any person obtaining |
| 5 | +// * a copy of this software and associated documentation files (the |
| 6 | +// * "Software"), to deal in the Software without restriction, including |
| 7 | +// * without limitation the rights to use, copy, modify, merge, publish, |
| 8 | +// * distribute, sublicense, and/or sell copies of the Software, and to |
| 9 | +// * permit persons to whom the Software is furnished to do so, subject to |
| 10 | +// * the following conditions: |
| 11 | +// * |
| 12 | +// * The above copyright notice and this permission notice shall be |
| 13 | +// * included in all copies or substantial portions of the Software. |
| 14 | +// * |
| 15 | +// * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| 16 | +// * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| 17 | +// * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| 18 | +// * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
| 19 | +// * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
| 20 | +// * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
| 21 | +// * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 22 | +// * |
| 23 | +// * SPDX-License-Identifier: MIT |
| 24 | +// * |
| 25 | +// ******************************************************************************/ |
| 26 | +//package org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka; |
| 27 | +// |
| 28 | +//import java.util.concurrent.TimeUnit; |
| 29 | +// |
| 30 | +//import org.eclipse.digitaltwin.aas4j.v3.dataformat.core.SerializationException; |
| 31 | +//import org.eclipse.digitaltwin.aas4j.v3.model.Submodel; |
| 32 | +//import org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka.events.model.SubmodelEvent; |
| 33 | +//import org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka.events.model.SubmodelEventType; |
| 34 | +//import org.junit.After; |
| 35 | +//import org.junit.Assert; |
| 36 | +//import org.junit.Before; |
| 37 | +//import org.junit.Test; |
| 38 | +//import org.junit.runner.RunWith; |
| 39 | +//import org.springframework.beans.factory.annotation.Autowired; |
| 40 | +//import org.springframework.boot.test.context.SpringBootTest; |
| 41 | +//import org.springframework.context.ApplicationContext; |
| 42 | +//import org.springframework.context.annotation.ComponentScan; |
| 43 | +//import org.springframework.context.annotation.Import; |
| 44 | +//import org.springframework.context.event.ContextClosedEvent; |
| 45 | +//import org.springframework.test.annotation.DirtiesContext; |
| 46 | +//import org.springframework.test.annotation.DirtiesContext.ClassMode; |
| 47 | +//import org.springframework.test.context.ActiveProfiles; |
| 48 | +//import org.springframework.test.context.ContextConfiguration; |
| 49 | +//import org.springframework.test.context.TestPropertySource; |
| 50 | +//import org.springframework.test.context.junit4.SpringRunner; |
| 51 | +// |
| 52 | +///** |
| 53 | +// * @author geso02 (Sonnenberg DFKI GmbH) |
| 54 | +// */ |
| 55 | +//@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) |
| 56 | +//@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) |
| 57 | +//@ComponentScan(basePackages = { "org.eclipse.digitaltwin.basyx.submodelservice.feature.kafka" }) |
| 58 | +//@RunWith(SpringRunner.class) |
| 59 | +//@ActiveProfiles("test-submodel") |
| 60 | +//@ContextConfiguration(classes = {SubmodelServiceTestComponent.class}) |
| 61 | +//@TestPropertySource(properties = { "spring.kafka.bootstrap-servers=localhost:9092", |
| 62 | +// KafkaSubmodelServiceFeature.FEATURENAME + ".preservationlevel=REMOVE_BLOB_VALUE", |
| 63 | +// KafkaSubmodelServiceFeature.FEATURENAME + ".enabled=true", |
| 64 | +// KafkaSubmodelServiceFeature.FEATURENAME + ".topic.name=" + SubmodelEventKafkaListener.TOPIC_NAME, |
| 65 | +// KafkaSubmodelServiceApplicationListener.SUBMODEL_EVENTS_ACTIVATED + "=true" |
| 66 | +//}) |
| 67 | +//@Import(SubmodelEventKafkaListener.class) |
| 68 | +//public class KafkaSubmodelServiceSubmodelEventsIntegrationTest { |
| 69 | +// |
| 70 | +// @Autowired |
| 71 | +// private SubmodelEventKafkaListener listener; |
| 72 | +// |
| 73 | +// @Autowired |
| 74 | +// private Submodel submodel; |
| 75 | +// |
| 76 | +// @Autowired |
| 77 | +// private ApplicationContext context; |
| 78 | +// |
| 79 | +// @Before |
| 80 | +// public void awaitAssignment() throws InterruptedException { |
| 81 | +// listener.awaitTopicAssignment(); |
| 82 | +// } |
| 83 | +// |
| 84 | +// @Test |
| 85 | +// public void testSubmodelEvents() throws InterruptedException { |
| 86 | +// // we expect the "onStartup" submodel created event |
| 87 | +// SubmodelEvent evt = listener.next(); |
| 88 | +// Assert.assertEquals(SubmodelEventType.SM_CREATED, evt.getType()); |
| 89 | +// Assert.assertEquals(submodel.getId(), evt.getId()); |
| 90 | +// Assert.assertEquals(submodel, evt.getSubmodel()); |
| 91 | +// Assert.assertNull(evt.getSmElementPath()); |
| 92 | +// Assert.assertNull(evt.getSmElement()); |
| 93 | +// |
| 94 | +// // simulate closing |
| 95 | +// context.publishEvent(new ContextClosedEvent(context)); |
| 96 | +// evt = listener.next(); |
| 97 | +// Assert.assertEquals(SubmodelEventType.SM_DELETED, evt.getType()); |
| 98 | +// Assert.assertEquals(submodel.getId(), evt.getId()); |
| 99 | +// Assert.assertNull(evt.getSubmodel()); |
| 100 | +// Assert.assertNull(evt.getSmElementPath()); |
| 101 | +// Assert.assertNull(evt.getSmElement()); |
| 102 | +// } |
| 103 | +// |
| 104 | +// |
| 105 | +//} |
0 commit comments