예제 #1
0
        public void Release_ValidMessageContent_ShouldThrowExcptionIfContentIsReleasedMoreThanOnce()
        {
            // Arrange
            var mcp     = new MessageContextProvider();
            var message = new Mock <IMessage <object> >();

            message.Setup(mc => mc.Content).Returns(new object());
            mcp.StoreMessageContext(message.Object);

            // Act
            mcp.ReleaseMessageContext(message.Object);
            Assert.Throws <MessageContextException>(() => mcp.ReleaseMessageContext(message.Object));
        }
예제 #2
0
        public Task CreateActivities(int number)
        {
            var tasks = new Task[number];

            for (int i = 0; i < number; i++)
            {
                AccountCreatedMessage message = new AccountCreatedMessage(i, $"User {i}", "UserRef {i}");
                var messageContext            = new FakeMessage <AccountCreatedMessage>(message, Guid.NewGuid().ToString());

                MessageContextProvider.StoreMessageContext(messageContext);

                tasks[i] = ActivitySaver
                           .SaveActivity(message, ActivityType.AccountCreated)
                           .ContinueWith(t => CreatedActivities.Add(t.Result))
                           .ContinueWith(t => MessageContextProvider.ReleaseMessageContext(messageContext));
            }

            return(Task.WhenAll(tasks)
                   .ContinueWith(task =>
            {
                Assert.IsTrue(tasks.All(t => t.IsCompleted), "At least one creation task did not complete");

                var firstFaulted = tasks.FirstOrDefault(t => t.IsFaulted);
                if (firstFaulted != null)
                {
                    Assert.Fail($"At least one creation task faulted.{firstFaulted.Exception.Flatten().Message}");
                }

                Assert.AreEqual(number, CreatedActivities.Count, "Incorrect number of accounts created");
            }));
        }
예제 #3
0
        public void Release_NullMessage_ShouldIgnoreNulls()
        {
            var mcp = new MessageContextProvider();

            mcp.ReleaseMessageContext((IMessage <object>)null);
            Assert.Pass("Did not get an exception thrown");
        }
예제 #4
0
        public void Release_NullMessageContent_ShouldIgnoreNulls()
        {
            // Arrange
            var mcp     = new MessageContextProvider();
            var message = new Mock <IMessage <object> >();

            message.Setup(mc => mc.Content).Returns(null);

            // Act
            mcp.ReleaseMessageContext(message.Object);
            Assert.Pass("Did not get an exception thrown");
        }