From 1661f6600677eb0b9acad5075bdc676d5cfe76ea Mon Sep 17 00:00:00 2001 From: Kai Zimmermann Date: Sat, 13 May 2017 16:55:50 +0200 Subject: [PATCH] Upgrade Vaadin to 7.7.9 (#513) * Upgrade Vaadin to 7.7.9 Signed-off-by: kaizimmerm * Remove file that was checked in unintentional. Signed-off-by: kaizimmerm --- ...pMessageHandlerServiceIntegrationTest.java | 627 ------------------ pom.xml | 2 +- 2 files changed, 1 insertion(+), 628 deletions(-) delete mode 100644 hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java diff --git a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java b/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java deleted file mode 100644 index e0d14671e..000000000 --- a/hawkbit-dmf-amqp/src/test/java/org/eclipse/hawkbit/integration/AmqpMessageHandlerServiceIntegrationTest.java +++ /dev/null @@ -1,627 +0,0 @@ -/** - * Copyright (c) 2015 Bosch Software Innovations GmbH and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - */ -package org.eclipse.hawkbit.integration; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; - -import java.util.List; -import java.util.UUID; -import java.util.stream.Collectors; - -import org.eclipse.hawkbit.dmf.amqp.api.EventTopic; -import org.eclipse.hawkbit.dmf.amqp.api.MessageHeaderKey; -import org.eclipse.hawkbit.dmf.amqp.api.MessageType; -import org.eclipse.hawkbit.dmf.json.model.ActionStatus; -import org.eclipse.hawkbit.dmf.json.model.ActionUpdateStatus; -import org.eclipse.hawkbit.dmf.json.model.AttributeUpdate; -import org.eclipse.hawkbit.repository.event.remote.TargetAssignDistributionSetEvent; -import org.eclipse.hawkbit.repository.event.remote.TargetPollEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.ActionCreatedEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.ActionUpdatedEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.CancelTargetAssignmentEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetCreatedEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.SoftwareModuleCreatedEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.TargetCreatedEvent; -import org.eclipse.hawkbit.repository.event.remote.entity.TargetUpdatedEvent; -import org.eclipse.hawkbit.repository.model.Action.Status; -import org.eclipse.hawkbit.repository.model.DistributionSet; -import org.eclipse.hawkbit.repository.model.DistributionSetAssignmentResult; -import org.eclipse.hawkbit.repository.model.TargetUpdateStatus; -import org.eclipse.hawkbit.repository.test.matcher.Expect; -import org.eclipse.hawkbit.repository.test.matcher.ExpectEvents; -import org.junit.Test; -import org.mockito.Mockito; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.core.MessageProperties; - -import ru.yandex.qatools.allure.annotations.Description; -import ru.yandex.qatools.allure.annotations.Features; -import ru.yandex.qatools.allure.annotations.Stories; - -@Features("Component Tests - Device Management Federation API") -@Stories("Amqp Message Handler Service") -public class AmqpMessageHandlerServiceIntegrationTest extends AmqpServiceIntegrationTest { - - @Test - @Description("Tests register target") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 2), - @Expect(type = TargetPollEvent.class, count = 3) }) - public void registerTargets() { - registerAndAssertTargetWithExistingTenant(REGISTER_TARGET, 1); - - final String target2 = "Target2"; - registerAndAssertTargetWithExistingTenant(target2, 2); - final Long pollingTimeTarget2 = controllerManagement.findByControllerId(target2).get().getLastTargetQuery(); - registerSameTargetAndAssertBasedOnLastPolling(target2, 2, TargetUpdateStatus.REGISTERED, pollingTimeTarget2); - Mockito.verifyZeroInteractions(getDeadletterListener()); - } - - @Test - @Description("Tests register invalid target withy empty controller id. Tests register invalid target with null controller id") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void registerEmptyTarget() { - createAndSendTarget("", TENANT_EXIST); - assertAllTargetsCount(0); - verifyDeadLetterMessages(1); - - } - - @Test - @Description("Tests register invalid target with whitspace controller id. Tests register invalid target with null controller id") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void registerWhitespaceTarget() { - createAndSendTarget("Invalid Invalid", TENANT_EXIST); - assertAllTargetsCount(0); - verifyDeadLetterMessages(1); - - } - - @Test - @Description("Tests register invalid target with null controller id. Tests register invalid target with null controller id") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void registerInvalidNullTargets() { - createAndSendTarget(null, TENANT_EXIST); - assertAllTargetsCount(0); - verifyDeadLetterMessages(1); - - } - - @Test - @Description("Tests not allowed content-type in message. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void wrongContentType() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, TENANT_EXIST); - createTargetMessage.getMessageProperties().setContentType("WrongContentType"); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests null reply to property in message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void missingReplyToProperty() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, TENANT_EXIST); - createTargetMessage.getMessageProperties().setReplyTo(null); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests missing reply to property in message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void emptyReplyToProperty() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, TENANT_EXIST); - createTargetMessage.getMessageProperties().setReplyTo(""); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests missing thing id property in message. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void missingThingIdProperty() { - final Message createTargetMessage = createTargetMessage(null, TENANT_EXIST); - createTargetMessage.getMessageProperties().getHeaders().remove(MessageHeaderKey.THING_ID); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests null thing id property in message. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void nullThingIdProperty() { - final Message createTargetMessage = createTargetMessage(null, TENANT_EXIST); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests missing tenant message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void missingTenantHeader() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, TENANT_EXIST); - createTargetMessage.getMessageProperties().getHeaders().remove(MessageHeaderKey.TENANT); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests null tenant message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void nullTenantHeader() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, null); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests empty tenant message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void emptyTenantHeader() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, ""); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests tenant not exist. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void tenantNotExist() { - final Message createTargetMessage = createTargetMessage(REGISTER_TARGET, "TenantNotExist"); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertThat(systemManagement.findTenants(pageReq)).hasSize(1); - } - - @Test - @Description("Tests missing type message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void missingTypeHeader() { - final Message createTargetMessage = createTargetMessage(null, TENANT_EXIST); - createTargetMessage.getMessageProperties().getHeaders().remove(MessageHeaderKey.TYPE); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests null type message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void nullTypeHeader() { - final Message createTargetMessage = createTargetMessage(null, TENANT_EXIST); - createTargetMessage.getMessageProperties().getHeaders().put(MessageHeaderKey.TYPE, null); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests empty type message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void emptyTypeHeader() { - final Message createTargetMessage = createTargetMessage(null, TENANT_EXIST); - createTargetMessage.getMessageProperties().getHeaders().put(MessageHeaderKey.TYPE, ""); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests invalid type message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void invalidTypeHeader() { - final Message createTargetMessage = createTargetMessage(null, TENANT_EXIST); - createTargetMessage.getMessageProperties().getHeaders().put(MessageHeaderKey.TYPE, "NotExist"); - getDmfClient().send(createTargetMessage); - - verifyDeadLetterMessages(1); - assertAllTargetsCount(0); - } - - @Test - @Description("Tests null topic message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void nullTopicHeader() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, ""); - eventMessage.getMessageProperties().getHeaders().put(MessageHeaderKey.TOPIC, null); - getDmfClient().send(eventMessage); - - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests null topic message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void emptyTopicHeader() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, ""); - eventMessage.getMessageProperties().getHeaders().put(MessageHeaderKey.TOPIC, ""); - getDmfClient().send(eventMessage); - - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests null topic message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void invalidTopicHeader() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, ""); - eventMessage.getMessageProperties().getHeaders().put(MessageHeaderKey.TOPIC, "NotExist"); - getDmfClient().send(eventMessage); - - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests missing topic message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void missingTopicHeader() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, ""); - eventMessage.getMessageProperties().getHeaders().remove(MessageHeaderKey.TOPIC); - getDmfClient().send(eventMessage); - - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests invalid null message content. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void updateActionStatusWithNullContent() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, null); - getDmfClient().send(eventMessage); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests invalid empty message content. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void updateActionStatusWithEmptyContent() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, ""); - getDmfClient().send(eventMessage); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests invalid json message content. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void updateActionStatusWithInvalidJsonContent() { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, - "Invalid Content"); - getDmfClient().send(eventMessage); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests invalid topic message header. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 0) }) - public void updateActionStatusWithInvalidActionId() { - final ActionUpdateStatus actionUpdateStatus = new ActionUpdateStatus(1L, ActionStatus.RUNNING); - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, - actionUpdateStatus); - getDmfClient().send(eventMessage); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Tests register target and cancel a assignment") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 1), @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 2), @Expect(type = TargetPollEvent.class, count = 1) }) - public void finishActionStatus() { - registerTargetAndSendAndAssertUpdateActionStatus(ActionStatus.FINISHED, Status.FINISHED); - } - - @Test - @Description("Register a target and send a update action status (running). Verfiy if the updated action status is correct.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 0), @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void runningActionStatus() { - registerTargetAndSendAndAssertUpdateActionStatus(ActionStatus.RUNNING, Status.RUNNING); - } - - @Test - @Description("Register a target and send a update action status (download). Verfiy if the updated action status is correct.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void downloadActionStatus() { - registerTargetAndSendAndAssertUpdateActionStatus(ActionStatus.DOWNLOAD, Status.DOWNLOAD); - } - - @Test - @Description("Register a target and send a update action status (error). Verfiy if the updated action status is correct.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 1), @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 2), @Expect(type = TargetPollEvent.class, count = 1) }) - public void errorActionStatus() { - registerTargetAndSendAndAssertUpdateActionStatus(ActionStatus.ERROR, Status.ERROR); - } - - @Test - @Description("Register a target and send a update action status (warning). Verfiy if the updated action status is correct.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void warningActionStatus() { - registerTargetAndSendAndAssertUpdateActionStatus(ActionStatus.WARNING, Status.WARNING); - } - - @Test - @Description("Register a target and send a update action status (retrieved). Verfiy if the updated action status is correct.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void retrievedActionStatus() { - registerTargetAndSendAndAssertUpdateActionStatus(ActionStatus.RETRIEVED, Status.RETRIEVED); - } - - @Test - @Description("Register a target and send a invalid update action status (cancel). This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void cancelNotAllowActionStatus() { - registerTargetAndSendActionStatus(ActionStatus.CANCELED); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Verfiy receiving a download and install message if a deployment is done before the target has polled the first time.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void receiveDownLoadAndInstallMessageAfterAssignment() { - - // setup - controllerManagement.findOrRegisterTargetIfItDoesNotexist(REGISTER_TARGET, null); - final DistributionSet distributionSet = testdataFactory.createDistributionSet(UUID.randomUUID().toString()); - assignDistributionSet(distributionSet.getId(), REGISTER_TARGET); - - // test - registerAndAssertTargetWithExistingTenant(REGISTER_TARGET, 1, TargetUpdateStatus.PENDING, "bumlux"); - - // verify - assertDownloadAndInstallMessage(distributionSet.getModules()); - Mockito.verifyZeroInteractions(getDeadletterListener()); - } - - @Test - @Description("Verfiy receiving a cancel update message if a deployment is canceled before the target has polled the first time.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = CancelTargetAssignmentEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 1), @Expect(type = TargetUpdatedEvent.class, count = 1), - @Expect(type = TargetPollEvent.class, count = 1) }) - public void receiveCancelUpdateMessageAfterAssignmentWasCanceled() { - - // Setup - controllerManagement.findOrRegisterTargetIfItDoesNotexist(REGISTER_TARGET, null); - final DistributionSet distributionSet = testdataFactory.createDistributionSet(UUID.randomUUID().toString()); - final DistributionSetAssignmentResult distributionSetAssignmentResult = assignDistributionSet( - distributionSet.getId(), REGISTER_TARGET); - deploymentManagement.cancelAction(distributionSetAssignmentResult.getActions().get(0)); - - // test - registerAndAssertTargetWithExistingTenant(REGISTER_TARGET, 1, TargetUpdateStatus.PENDING, "bumlux"); - - // verify - assertCancelActionMessage(distributionSetAssignmentResult.getActions().get(0)); - Mockito.verifyZeroInteractions(getDeadletterListener()); - } - - @Test - @Description("Register a target and send a invalid update action status (canceled). The current status (pending) is not a canceling state. This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 1), @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = CancelTargetAssignmentEvent.class, count = 1), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void actionNotExists() { - final Long actionId = registerTargetAndCancelActionId(); - final Long actionNotExist = actionId + 1; - - sendActionUpdateStatus(new ActionUpdateStatus(actionNotExist, ActionStatus.CANCELED)); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Register a target and send a invalid update action status (cancel_rejected). This message should forwarded to the deadletter queue") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void canceledRejectedNotAllowActionStatus() { - registerTargetAndSendActionStatus(ActionStatus.CANCEL_REJECTED); - verifyDeadLetterMessages(1); - } - - @Test - @Description("Register a target and send a valid update action status (cancel_rejected). Verfiy if the updated action status is correct.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetAssignDistributionSetEvent.class, count = 1), - @Expect(type = CancelTargetAssignmentEvent.class, count = 1), - @Expect(type = ActionUpdatedEvent.class, count = 1), @Expect(type = ActionCreatedEvent.class, count = 1), - @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), - @Expect(type = DistributionSetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void canceledRejectedActionStatus() { - final Long actionId = registerTargetAndCancelActionId(); - - sendActionUpdateStatus(new ActionUpdateStatus(actionId, ActionStatus.CANCEL_REJECTED)); - assertAction(actionId, Status.RUNNING, Status.CANCELING, Status.CANCEL_REJECTED); - } - - @Test - @Description("Verify that sending an update controller attribute message to an existing target works.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 1), @Expect(type = TargetPollEvent.class, count = 1) }) - public void updateAttributes() { - - // setup - final String target = "ControllerAttributeTestTarget"; - registerAndAssertTargetWithExistingTenant(target, 1); - final AttributeUpdate controllerAttribute = new AttributeUpdate(); - controllerAttribute.getAttributes().put("test1", "testA"); - controllerAttribute.getAttributes().put("test2", "testB"); - - // test - sendUpdateAttributeMessage(target, TENANT_EXIST, controllerAttribute); - - // validate - assertUpdateAttributes(target, controllerAttribute.getAttributes()); - } - - @Test - @Description("Verify that sending an update controller attribute message with no thingid header to an existing target does not work.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 0), @Expect(type = TargetPollEvent.class, count = 1) }) - public void updateAttributesWithNoThingId() { - - // setup - final String target = "ControllerAttributeTestTarget"; - registerAndAssertTargetWithExistingTenant(target, 1); - final AttributeUpdate controllerAttribute = new AttributeUpdate(); - controllerAttribute.getAttributes().put("test1", "testA"); - controllerAttribute.getAttributes().put("test2", "testB"); - final Message createUpdateAttributesMessage = createUpdateAttributesMessage(null, TENANT_EXIST, - controllerAttribute); - createUpdateAttributesMessage.getMessageProperties().getHeaders().remove(MessageHeaderKey.THING_ID); - - // test - getDmfClient().send(createUpdateAttributesMessage); - - // verify - verifyDeadLetterMessages(1); - final AttributeUpdate controllerAttributeEmpty = new AttributeUpdate(); - assertUpdateAttributes(target, controllerAttributeEmpty.getAttributes()); - } - - @Test - @Description("Verify that sending an update controller attribute message with invalid body to an existing target does not work.") - @ExpectEvents({ @Expect(type = TargetCreatedEvent.class, count = 1), - @Expect(type = TargetUpdatedEvent.class, count = 0), @Expect(type = TargetPollEvent.class, count = 1) }) - public void updateAttributesWithWrongBody() { - - // setup - final String target = "ControllerAttributeTestTarget"; - registerAndAssertTargetWithExistingTenant(target, 1); - final AttributeUpdate controllerAttribute = new AttributeUpdate(); - controllerAttribute.getAttributes().put("test1", "testA"); - controllerAttribute.getAttributes().put("test2", "testB"); - final Message createUpdateAttributesMessageWrongBody = createUpdateAttributesMessageWrongBody(target, - TENANT_EXIST); - - // test - getDmfClient().send(createUpdateAttributesMessageWrongBody); - - // verify - verifyDeadLetterMessages(1); - } - - private Long registerTargetAndSendActionStatus(final ActionStatus sendActionStatus) { - final DistributionSetAssignmentResult assignmentResult = registerTargetAndAssignDistributionSet(); - final Long actionId = assignmentResult.getActions().get(0); - sendActionUpdateStatus(new ActionUpdateStatus(actionId, sendActionStatus)); - return actionId; - } - - private void sendActionUpdateStatus(final ActionUpdateStatus actionStatus) { - final Message eventMessage = createEventMessage(TENANT_EXIST, EventTopic.UPDATE_ACTION_STATUS, actionStatus); - getDmfClient().send(eventMessage); - } - - private void registerTargetAndSendAndAssertUpdateActionStatus(final ActionStatus sendActionStatus, - final Status expectedActionStatus) { - final Long actionId = registerTargetAndSendActionStatus(sendActionStatus); - assertAction(actionId, Status.RUNNING, expectedActionStatus); - } - - private void assertAction(final Long actionId, final Status... expectedActionStates) { - createConditionFactory().await().until(() -> { - try { - securityRule.runAsPrivileged(() -> { - final List status = deploymentManagement.findActionStatusByAction(pageReq, actionId) - .getContent().stream().map(actionStatus -> actionStatus.getStatus()) - .collect(Collectors.toList()); - assertThat(status).containsOnly(expectedActionStates); - return null; - }); - } catch (final Exception e) { - fail(e.getMessage()); - } - }); - } - - private Message createEventMessage(final String tenant, final EventTopic eventTopic, final Object payload) { - final MessageProperties messageProperties = createMessagePropertiesWithTenant(tenant); - messageProperties.getHeaders().put(MessageHeaderKey.TYPE, MessageType.EVENT.toString()); - messageProperties.getHeaders().put(MessageHeaderKey.TOPIC, eventTopic.toString()); - - return createMessage(payload, messageProperties); - } - - private void sendUpdateAttributeMessage(final String target, final String tenant, - final AttributeUpdate attributeUpdate) { - final Message updateMessage = createUpdateAttributesMessage(target, tenant, attributeUpdate); - getDmfClient().send(updateMessage); - } - -} diff --git a/pom.xml b/pom.xml index 206a64811..19de05b60 100644 --- a/pom.xml +++ b/pom.xml @@ -141,7 +141,7 @@ 1.1.1 0.0.6.RELEASE - 7.7.7 + 7.7.9 ${vaadin.version} 7.6.1.3 2.2.0