/// <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); }
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); }
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(); }
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(); }
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(); }
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); }
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); }