Пример #1
0
        public void MessageOlderThanRetentionDateWillBeDeleted(string specificSettings)
        {
            // Arrange: Insert a "retired" OutMessage with a referenced Reception Awareness.
            OverrideWithSpecificSettings(specificSettings);

            IConfig config = EnsureLocalConfigPointsToCreatedDatastore();
            string  outReferenceId = GenId(), outStandaloneId = GenId(),
                    inMessageId = GenId(), outExceptionId = GenId(),
                    inExceptionId = GenId();

            var        spy = new DatabaseSpy(config);
            OutMessage om  = CreateOutMessage(outReferenceId, insertionTime: DayBeforeYesterday, type: MessageType.Error);

            spy.InsertOutMessage(om);
            spy.InsertRetryReliability(RetryReliability.CreateForOutMessage(om.Id, maxRetryCount: 0, retryInterval: default(TimeSpan), type: RetryType.Send));
            spy.InsertOutMessage(CreateOutMessage(outStandaloneId, insertionTime: DayBeforeYesterday, type: MessageType.Receipt));
            spy.InsertInMessage(CreateInMessage(inMessageId, DayBeforeYesterday));
            spy.InsertOutException(CreateOutException(outExceptionId, DayBeforeYesterday));
            spy.InsertInException(CreateInException(inExceptionId, DayBeforeYesterday));

            // Act: AS4.NET Component will start the Clean Up Agent.
            ExerciseStartCleaning();

            // Assert: No OutMessage or Reception Awareness entries must be found for a given EbmsMessageId.
            Assert.Empty(spy.GetOutMessages(outReferenceId, outStandaloneId));
            Assert.Null(spy.GetRetryReliabilityFor(r => r.RefToOutMessageId == om.Id));
            Assert.Empty(spy.GetInMessages(inMessageId));
            Assert.Empty(spy.GetOutExceptions(outExceptionId));
            Assert.Empty(spy.GetInExceptions(inExceptionId));
        }
Пример #2
0
        /// <summary>
        /// Inserts the out message.
        /// </summary>
        /// <param name="createContext">The create context.</param>
        /// <param name="message">The message.</param>
        /// <param name="withReceptionAwareness"></param>
        /// <returns>The OutMessage that has been inserted</returns>
        public static OutMessage InsertOutMessage(
            this Func <DatastoreContext> createContext,
            OutMessage message,
            bool withReceptionAwareness = false)
        {
            using (DatastoreContext context = createContext())
            {
                context.OutMessages.Add(message);
                context.SaveChanges();

                if (withReceptionAwareness)
                {
                    context.Add(
                        RetryReliability.CreateForOutMessage(
                            refToOutMessageId: message.Id,
                            maxRetryCount: 0,
                            retryInterval: TimeSpan.Zero,
                            type: RetryType.Send));

                    context.SaveChanges();
                }

                return(message);
            }
        }