Пример #1
0
        public void CanGetChangeManager()
        {
            var remoteChangeManger = Context.PortfolioMaster.ChangeManager;
            var changeListener     = new AggregatingChangeListener();

            remoteChangeManger.AddChangeListener(changeListener);
            try
            {
                Assert.Empty(changeListener.GetAndClearEvents());
            }
            finally
            {
                remoteChangeManger.RemoveChangeListener(changeListener);
            }
        }
Пример #2
0
        private static void CanAddAndGet(RemoteMarketDataSnapshotMaster snapshotMaster)
        {
            var changeManager             = snapshotMaster.ChangeManager;
            var aggregatingChangeListener = new AggregatingChangeListener();

            changeManager.AddChangeListener(aggregatingChangeListener);
            try
            {
                var name = TestUtils.GetUniqueName();

                var marketDataSnapshotDocument = snapshotMaster.Add(GetDocument(name));

                Thread.Sleep(TimeSpan.FromSeconds(1));
                List <ChangeEvent> events = aggregatingChangeListener.GetAndClearEvents();
                var addEvent = events.Single(e => e.Type == ChangeType.Added && e.AfterId.Equals(marketDataSnapshotDocument.UniqueId));

                var retDoc = snapshotMaster.Get(marketDataSnapshotDocument.UniqueId);
                Assert.NotNull(retDoc);
                Assert.NotEqual(DateTimeOffset.MinValue, retDoc.VersionFromInstant);
                Assert.NotEqual(DateTimeOffset.MinValue, retDoc.CorrectionFromInstant);

                Assert.Equal(retDoc.VersionFromInstant, addEvent.VersionInstant.ToDateTimeOffset());

                AssertEqual(retDoc, marketDataSnapshotDocument);

                snapshotMaster.Remove(marketDataSnapshotDocument.UniqueId);

                Thread.Sleep(TimeSpan.FromSeconds(1));
                events = aggregatingChangeListener.GetAndClearEvents();
                var removeEvent = events.Single(e => e.Type == ChangeType.Removed && e.BeforeId.Equals(marketDataSnapshotDocument.UniqueId));

                var deleted = snapshotMaster.Get(marketDataSnapshotDocument.UniqueId);
                Assert.Equal(deleted.VersionToInstant, removeEvent.VersionInstant.ToDateTimeOffset());
            }
            finally
            {
                changeManager.RemoveChangeListener(aggregatingChangeListener);
            }
        }