Example #1
0
        public async Task Send(string ruleRunId)
        {
            if (string.IsNullOrWhiteSpace(ruleRunId))
            {
                this._logger.LogError("received a null or empty rule run id");
                return;
            }

            var messageBusCts = new CancellationTokenSource();
            var message       = new ThirdPartyDataRequestMessage {
                SystemProcessOperationId = ruleRunId
            };
            var serialisedMessage = this._serialiser.Serialise(message);

            try
            {
                await this._awsQueueClient.SendToQueue(
                    this._awsConfiguration.DataSynchroniserRequestQueueName,
                    serialisedMessage,
                    messageBusCts.Token);
            }
            catch (Exception e)
            {
                this._logger.LogError(e, $"encountered an error when sending rule run id {ruleRunId} to the data requests queue.");
            }
        }
        public async Task Execute_SendsRuleId_ToDataRequestManager()
        {
            var dataRequestsService = new DataRequestSubscriber(
                this._awsQueueClient,
                this._awsConfiguration,
                this._sysCtx,
                this._serialiser,
                this._requestManager,
                this._logger);
            var messageObj = new ThirdPartyDataRequestMessage {
                SystemProcessOperationId = "123"
            };
            var msg = JsonConvert.SerializeObject(messageObj);

            await dataRequestsService.Execute("123", msg);

            A.CallTo(
                () => this._requestManager.Handle(
                    "123",
                    A <ISystemProcessOperationThirdPartyDataRequestContext> .Ignored)).MustHaveHappenedOnceExactly();
        }