/// <inheritdoc />
        protected override void StartHeliumActionProcessing(HeliumActionMessage actionMessage)
        {
            var sqlQueryMessage = new HeliumConstructSqlQueryMessage(actionMessage.HeliumAction, actionMessage.DataModel);

            sqlQueryMessage.AddStateData("OriginalInsertSender", Sender);
            sqlQueryMessage.AddStateData("OriginalInsertMessage", actionMessage);

            _constructInsertSqlQueryActor.Tell(sqlQueryMessage);
        }
Beispiel #2
0
        public void Constructor()
        {
            //---------------Set up test pack-------------------
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var actionMessage = new HeliumConstructSqlQueryMessage(HeliumAction.None, new object());

            //---------------Test Result -----------------------
            actionMessage.Should().NotBeNull();
        }
        private void HandleConstructSqlQueryMessage(HeliumConstructSqlQueryMessage requestMessage)
        {
            ActorLogger.Log(LogLevel.InfoLevel, $"Constructing {requestMessage.HeliumAction} SQL Query for {requestMessage.DataModel.GetType().Name}");

            var sqlQuery      = ConstructSelectStatement(requestMessage.DataModel);
            var resultMessage = new HeliumConstructSqlQueryResultMessage(requestMessage.HeliumAction, sqlQuery);

            resultMessage.AddStateData(requestMessage.MessageStateData);

            Sender.Tell(resultMessage, Self);
        }
Beispiel #4
0
        public void HeliumConstructSqlQueryMessage_GivenHeliumActionNotInsert_ShouldNotHandleMessage()
        {
            //---------------Set up test pack-------------------
            var actorRef        = CreateActor();
            var sqlQueryMessage = new HeliumConstructSqlQueryMessage(HeliumAction.Retrieve, new HeliumFakeDataModel {
                Id = Guid.NewGuid()
            });

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            actorRef.Tell(sqlQueryMessage);
            //---------------Test Result -----------------------
            ExpectNoMsg();
        }
Beispiel #5
0
        public void HeliumConstructSqlQueryMessage_GivenValidMessage_ShouldHandleMessage()
        {
            //---------------Set up test pack-------------------
            var actorRef        = CreateActor();
            var sqlQueryMessage = new HeliumConstructSqlQueryMessage(HeliumAction.Retrieve, new HeliumFakeDataModel {
                Id = Guid.NewGuid()
            });

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            actorRef.Tell(sqlQueryMessage);
            //---------------Test Result -----------------------
            var resultMessage = ExpectMsg <HeliumConstructSqlQueryResultMessage>();

            resultMessage.Should().NotBeNull();
        }
Beispiel #6
0
        public void HeliumConstructSqlQueryMessage_GivenValidMessage_ShouldHandleMessage()
        {
            //---------------Set up test pack-------------------
            var actorRef            = CreateActor();
            var heliumFakeDataModel = new HeliumFakeDataModel
            {
                Id          = Guid.NewGuid(),
                Description = RandomValueGenerator.CreateRandomString(1, 10),
                IsActive    = RandomValueGenerator.CreateRandomBoolean()
            };
            var sqlQueryMessage = new HeliumConstructSqlQueryMessage(HeliumAction.Insert, heliumFakeDataModel);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            actorRef.Tell(sqlQueryMessage);
            //---------------Test Result -----------------------
            var resultMessage = ExpectMsg <HeliumConstructSqlQueryResultMessage>();

            resultMessage.Should().NotBeNull();
        }
Beispiel #7
0
        public void HeliumConstructSqlQueryMessage_GivenValidMessage_ShouldHandleMessageAndReturnExpectedSqlQuery()
        {
            //---------------Set up test pack-------------------
            var dataModelId      = Guid.NewGuid();
            var expectedSqlQuery = $"SELECT [HeliumFake].[Id], [HeliumFake].[Description], [HeliumFake].[IsActive] FROM [HeliumFake] WHERE  [HeliumFake].[Id] = '{dataModelId}' ";
            var actorRef         = CreateActor(SelectStatementBuilder.Create, ConditionBuilder.Create);
            var sqlQueryMessage  = new HeliumConstructSqlQueryMessage(HeliumAction.Retrieve, new HeliumFakeDataModel {
                Id = dataModelId
            });

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            actorRef.Tell(sqlQueryMessage);
            //---------------Test Result -----------------------
            var resultMessage = ExpectMsg <HeliumConstructSqlQueryResultMessage>();

            resultMessage.Should().NotBeNull();
            resultMessage.HeliumAction.Should().Be(sqlQueryMessage.HeliumAction);
            resultMessage.SqlQuery.Should().Be(expectedSqlQuery);
        }
Beispiel #8
0
        public void HeliumConstructSqlQueryMessage_GivenValidMessage_ShouldHandleMessageAndReturnExpectedSqlQuery()
        {
            //---------------Set up test pack-------------------
            var heliumFakeDataModel = new HeliumFakeDataModel
            {
                Id          = Guid.NewGuid(),
                Description = RandomValueGenerator.CreateRandomString(1, 10)
            };
            var expectedSqlQuery = $"INSERT INTO [HeliumFake] ([Id],[Description]) VALUES ('{heliumFakeDataModel.Id}','{heliumFakeDataModel.Description}')";
            var actorRef         = CreateActor(InsertStatementBuilder.Create, ConditionBuilder.Create);
            var sqlQueryMessage  = new HeliumConstructSqlQueryMessage(HeliumAction.Insert, heliumFakeDataModel);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            actorRef.Tell(sqlQueryMessage);
            //---------------Test Result -----------------------
            var resultMessage = ExpectMsg <HeliumConstructSqlQueryResultMessage>();

            resultMessage.Should().NotBeNull();
            resultMessage.HeliumAction.Should().Be(sqlQueryMessage.HeliumAction);
            resultMessage.SqlQuery.Should().Be(expectedSqlQuery);
        }