public void Test_BillingMessageMachine_Constructor_Successful() { // arrange var printJobService = MockRepository.GenerateMock <IPrintJobService>(); // act var machine = new BillingMessageMachine(printJobService); // assert machine.ShouldNotBeNull(); }
public void Test_IsValidIssueSystemCode_Success(string issueSystemCode) { // arrange var printService = MockRepository.GenerateMock <IPrintJobService>(); var logger = MockRepository.GenerateMock <IMessageLogger>(); var machine = new BillingMessageMachine(printService, logger); // act var result = machine.IsValidIssueSystemCode(issueSystemCode, "A123456", logger); // assert result.ShouldBeTrue(); }
public void Test_IsValidActivityType_Failure(string activityTypeCode) { // arrange var printService = MockRepository.GenerateMock <IPrintJobService>(); var logger = MockRepository.GenerateMock <IMessageLogger>(); var machine = new BillingMessageMachine(printService, logger); // act var result = machine.IsValidActivityType(activityTypeCode, "A123456", logger); // assert result.ShouldBeFalse(); }
public void Test_BillingMessageMachine_SendMessage(string printJobName, string activityTypeCode, string issueSystemCode) { // arrange var printJobService = MockRepository.GenerateMock <IPrintJobService>(); var logger = MockRepository.GenerateMock <IMessageLogger>(); var harness = new InMemoryTestHarness(); var machine = new BillingMessageMachine(printJobService, logger); var saga = harness.StateMachineSaga <BillingMessageState, BillingMessageMachine>(machine); printJobService .Expect(p => p.GetPolicyTransactions("A123456", "58f31946b12b441892cd798973aab87e")) .Return(Task.FromResult <string>(this.transactionStatusValidXml.ToString())); printJobService .Expect(p => p.PostPrintJobRequest(Arg.Is("A123456"), Arg.Is("00"), Arg.Is("1"), Arg.Is(printJobName), Arg <string> .Is.Anything, Arg.Is("58f31946b12b441892cd798973aab87e"))) .Return(Task.FromResult <string>("printed!")); var accountActivity = new AccountActivity { ActivityTypeCode = activityTypeCode, Policy = new Policy { PolicyNumber = "A123456", Mod = "00", IssueSystemCode = issueSystemCode } }; // act harness.Start().Wait(); harness.Bus.Publish <IAccountActivity>(accountActivity).Wait(); // wait for the publish to do its thing, the Wait() above doesn't guarantee much. var receivedMessage = harness.Consumed.Select <IAccountActivity>().FirstOrDefault(); // assert printJobService.VerifyAllExpectations(); logger.VerifyAllExpectations(); receivedMessage.Exception.ShouldBeNull(); harness.Consumed.Count().ShouldEqual(1); harness.Published.Count().ShouldEqual(1); harness.Sent.Count().ShouldEqual(0); saga.Consumed.Count().ShouldEqual(1); // cleanup harness.Stop().Wait(); }
public void Test_BillingMessageMachine_SendMessage_InvalidCode(string printJobName, string activityTypeCode, string issueSystemCode) { // arrange var printJobService = MockRepository.GenerateMock <IPrintJobService>(); var logger = MockRepository.GenerateMock <IMessageLogger>(); var harness = new InMemoryTestHarness(); var machine = new BillingMessageMachine(printJobService, logger); var saga = harness.StateMachineSaga <BillingMessageState, BillingMessageMachine>(machine); var accountActivity = new AccountActivity { ActivityTypeCode = activityTypeCode, Policy = new Policy { PolicyNumber = "A123456", Mod = "00", IssueSystemCode = issueSystemCode } }; // act harness.Start().Wait(); harness.Bus.Publish <IAccountActivity>(accountActivity).Wait(); // wait for the publish to do its thing, the Wait() above doesn't guarantee much. var receivedMessage = harness.Consumed.Select <IAccountActivity>().FirstOrDefault(); // assert var message = logger.GetArgumentsForCallsMadeOn <IMessageLogger>(x => x.Log(Arg <Log> .Is.Anything, Arg <string> .Is.Null, Arg <string> .Is.Null, Arg <string> .Is.Null)); Log argumentLog = (Log)message[0][0]; LogMessage logMessage = argumentLog.Messages[0]; Assert.AreEqual(logMessage.Category, Constants.Logging.CATEGORY); Assert.AreEqual(logMessage.Severity, SeverityType.Information); printJobService.AssertWasNotCalled(p => p.GetPolicyTransactions(Arg <string> .Is.Anything, Arg <string> .Is.Anything)); printJobService.VerifyAllExpectations(); receivedMessage.Exception.ShouldBeNull(); harness.Consumed.Count().ShouldEqual(1); harness.Published.Count().ShouldEqual(1); harness.Sent.Count().ShouldEqual(0); saga.Consumed.Count().ShouldEqual(1); // cleanup harness.Stop().Wait(); }