Beispiel #1
0
        public void Run_Commands_OnlyRunsOnNamedReplicaSet()
        {
            const int replicaToRunOn = 5;

            GraphCluster.Run(replicaToRunOn.ToString(), Commands);

            for (int replicaSetOrdinal = 0; replicaSetOrdinal < NumberOfReplicaSets; ++replicaSetOrdinal)
            {
                var expectedReplica = ReplicaSets[replicaSetOrdinal];

                A.CallTo(() => expectedReplica.Run(Commands))
                .MustHaveHappened(replicaSetOrdinal == replicaToRunOn ? 1 : 0, Times.Exactly);
            }
        }
Beispiel #2
0
        public GraphClusterTests()
        {
            ReplicaSets = new IGraphReplicaSetLowLevel[NumberOfReplicaSets];
            for (int replicaSetOrdinal = 0; replicaSetOrdinal < NumberOfReplicaSets; ++replicaSetOrdinal)
            {
                var replicaSet = ReplicaSets[replicaSetOrdinal] = A.Fake <IGraphReplicaSetLowLevel>();
                A.CallTo(() => replicaSet.Name).Returns(replicaSetOrdinal.ToString());
            }

            Logger = A.Fake <ILogger>();

            GraphCluster = new GraphCluster(ReplicaSets, Logger);

            Queries  = new[] { A.Fake <IQuery <int> >() };
            Commands = new[] { A.Fake <ICommand>() };
        }
        public SyncOrchestratorTestsBase()
        {
            ContentDefinitionManager = A.Fake <IContentDefinitionManager>();
            Notifier = A.Fake <GraphSyncNotifier>();

            PreviewGraphReplicaSet = A.Fake <IGraphReplicaSet>();
            A.CallTo(() => PreviewGraphReplicaSet.Name)
            .Returns(GraphReplicaSetNames.Preview);

            PublishedGraphReplicaSet = A.Fake <IGraphReplicaSet>();
            A.CallTo(() => PublishedGraphReplicaSet.Name)
            .Returns(GraphReplicaSetNames.Published);

            var graphReplicaSets = new Dictionary <string, IGraphReplicaSet>
            {
                { GraphReplicaSetNames.Preview, PreviewGraphReplicaSet },
                { GraphReplicaSetNames.Published, PublishedGraphReplicaSet },
            };

            GraphCluster = A.Fake <IGraphCluster>();
            A.CallTo(() => GraphCluster.GetGraphReplicaSet(A <string> ._))
            .ReturnsLazily <IGraphReplicaSet, string>(graphReplicaSetName => graphReplicaSets[graphReplicaSetName]);

            PublishedContentItemVersion = A.Fake <IPublishedContentItemVersion>();
            A.CallTo(() => PublishedContentItemVersion.GraphReplicaSetName)
            .Returns(GraphReplicaSetNames.Published);

            ServiceProvider = A.Fake <IServiceProvider>();
            Logger          = A.Fake <ILogger <SyncOrchestrator> >();

            ContentItem = new ContentItem();

            ContentManager = A.Fake <IContentManager>();
            A.CallTo(() => ServiceProvider.GetService(A <Type> .That.Matches(
                                                          t => t.Name == nameof(IContentManager))))
            .Returns(ContentManager);

            PreviewMergeGraphSyncer   = A.Fake <IMergeGraphSyncer>();
            PublishedMergeGraphSyncer = A.Fake <IMergeGraphSyncer>();

            PreviewAllowSync = A.Fake <IAllowSync>();
            A.CallTo(() => PreviewMergeGraphSyncer.SyncAllowed(
                         A <IGraphReplicaSet> .That.Matches(s => s.Name == GraphReplicaSetNames.Preview),
                         A <ContentItem> ._, A <IContentManager> ._, A <IGraphMergeContext?> ._))
            .Returns(PreviewAllowSync);

            PublishedAllowSync = A.Fake <IAllowSync>();
            A.CallTo(() => PublishedMergeGraphSyncer.SyncAllowed(
                         A <IGraphReplicaSet> .That.Matches(s => s.Name == GraphReplicaSetNames.Published),
                         A <ContentItem> ._, A <IContentManager> ._, A <IGraphMergeContext?> ._))
            .Returns(PublishedAllowSync);

            EventGridPublishingHandler = A.Fake <IContentOrchestrationHandler>();
            A.CallTo(() => EventGridPublishingHandler.Published(A <IOrchestrationContext> .Ignored)).Returns(Task.CompletedTask);
            A.CallTo(() => EventGridPublishingHandler.DraftSaved(A <IOrchestrationContext> .Ignored)).Returns(Task.CompletedTask);
            A.CallTo(() => EventGridPublishingHandler.Cloned(A <IOrchestrationContext> .Ignored)).Returns(Task.CompletedTask);
            A.CallTo(() => EventGridPublishingHandler.Unpublished(A <IOrchestrationContext> .Ignored)).Returns(Task.CompletedTask);
            A.CallTo(() => EventGridPublishingHandler.DraftDiscarded(A <IOrchestrationContext> .Ignored)).Returns(Task.CompletedTask);
            A.CallTo(() => EventGridPublishingHandler.Deleted(A <IOrchestrationContext> .Ignored)).Returns(Task.CompletedTask);

            SyncOrchestrator = new SyncOrchestrator(
                ContentDefinitionManager,
                Notifier,
                GraphCluster,
                ServiceProvider,
                Logger,
                PublishedContentItemVersion,
                new List <IContentOrchestrationHandler> {
                EventGridPublishingHandler
            });

            TestActivity = new Activity("UnitTest").Start();
        }