Пример #1
0
        public void GivenNonExistingEndpointIdWhenOffboardingVcuThenTheArShouldReturnErrorMessage()
        {
            var offboardVcuService =
                new OffboardVcuService(new HttpMessagingService(HttpClient));
            var offboardVcuParameters = new OffboardVcuParameters
            {
                OnboardResponse      = OnboardResponse,
                ApplicationMessageId = MessageIdService.ApplicationMessageId(),
                Endpoints            = new List <string>
                {
                    "8597bd75-0366-41a9-b13c-3e685a47909e"
                }
            };

            offboardVcuService.Send(offboardVcuParameters);

            Thread.Sleep(TimeSpan.FromSeconds(5));

            var fetchMessageService = new FetchMessageService(HttpClient);
            var fetch = fetchMessageService.Fetch(OnboardResponse);

            Assert.Single(fetch);

            var decodedMessage = DecodeMessageService.Decode(fetch[0].Command.Message);

            Assert.Equal(400, decodedMessage.ResponseEnvelope.ResponseCode);
        }
Пример #2
0
        /// <summary>
        ///     Please see <seealso cref="IEncodeMessageService{T}.Encode" /> for documentation.
        /// </summary>
        /// <param name="offboardVcuParameters"></param>
        /// <returns>-</returns>
        public EncodedMessage Encode(OffboardVcuParameters offboardVcuParameters)
        {
            var messageHeaderParameters = new MessageHeaderParameters
            {
                ApplicationMessageId = offboardVcuParameters.ApplicationMessageId,
                TeamSetContextId     = offboardVcuParameters.TeamsetContextId ?? "",
                TechnicalMessageType = TechnicalMessageTypes.DkeCloudOffboardEndpoints,
                Mode = RequestEnvelope.Types.Mode.Direct
            };

            var messagePayloadParameters = new MessagePayloadParameters
            {
                TypeUrl = OffboardingRequest.Descriptor.FullName
            };

            var offboardingRequest = new OffboardingRequest();

            foreach (var endpoint in offboardVcuParameters.Endpoints)
            {
                offboardingRequest.Endpoints.Add(endpoint);
            }

            messagePayloadParameters.Value = offboardingRequest.ToByteString();

            var encodedMessage = new EncodedMessage
            {
                Id      = Guid.NewGuid().ToString(),
                Content = EncodeMessageService.Encode(messageHeaderParameters, messagePayloadParameters)
            };

            return(encodedMessage);
        }
Пример #3
0
        /// <summary>
        ///     Please see <seealso cref="IMessagingService{T}.Send" /> for documentation.
        /// </summary>
        /// <param name="offboardVcuParameters">-</param>
        /// <returns>-</returns>
        public MessagingResult Send(OffboardVcuParameters offboardVcuParameters)
        {
            var encodedMessages = new List <string> {
                Encode(offboardVcuParameters).Content
            };
            var messagingParameters = offboardVcuParameters.BuildMessagingParameter(encodedMessages);

            return(_messagingService.Send(messagingParameters));
        }
Пример #4
0
        public void GivenExistingEndpointIdWhenOffboardingVcuThenTheArShouldReturnErrorMessage()
        {
            var onboardVcuService = new OnboardVcuService(new HttpMessagingService(HttpClient));
            var endpointId        = Guid.NewGuid().ToString();

            var onboardVcuParameters = new OnboardVcuParameters
            {
                OnboardResponse      = OnboardResponse,
                ApplicationMessageId = MessageIdService.ApplicationMessageId(),
                OnboardingRequests   = new List <OnboardingRequest.Types.EndpointRegistrationDetails>
                {
                    new OnboardingRequest.Types.EndpointRegistrationDetails
                    {
                        Id   = endpointId,
                        Name = "My first virtual CU which is deleted directly..."
                    }
                }
            };

            onboardVcuService.Send(onboardVcuParameters);

            Thread.Sleep(TimeSpan.FromSeconds(5));

            var fetchMessageService = new FetchMessageService(HttpClient);
            var fetch = fetchMessageService.Fetch(OnboardResponse);

            Assert.Single(fetch);

            var decodedMessage = DecodeMessageService.Decode(fetch[0].Command.Message);

            Assert.Equal(201, decodedMessage.ResponseEnvelope.ResponseCode);

            var offboardVcuService =
                new OffboardVcuService(new HttpMessagingService(HttpClient));
            var offboardVcuParameters = new OffboardVcuParameters
            {
                OnboardResponse      = OnboardResponse,
                ApplicationMessageId = MessageIdService.ApplicationMessageId(),
                Endpoints            = new List <string>
                {
                    endpointId
                }
            };

            offboardVcuService.Send(offboardVcuParameters);

            Thread.Sleep(TimeSpan.FromSeconds(5));

            fetch = fetchMessageService.Fetch(OnboardResponse);
            Assert.Single(fetch);

            decodedMessage = DecodeMessageService.Decode(fetch[0].Command.Message);
            Assert.Equal(400, decodedMessage.ResponseEnvelope.ResponseCode);
        }