コード例 #1
0
        public void AcquireIgniteTopologyProjections_Success()
        {
            var igniteMock = new IgniteMock();

            DIBuilder.Continue()
            .Add(TRexGridFactory.AddGridFactoriesToDI)

            // Override the main Ignite grid factory method DI'ed from TRexGridFactory.AddGridFactoriesToDI()
            .Add(x => x.AddSingleton <Func <string, IgniteConfiguration, IIgnite> >(factory => (gridName, cfg) => igniteMock.mockIgnite.Object))
            .Complete();

            var ignite = new BaseIgniteClass(TRexGrids.GridName(StorageMutability.Immutable), "TestRole");

            ignite.AcquireIgniteTopologyProjections();
        }
コード例 #2
0
        public void AcquireIgniteTopologyProjections_FailWithUnknownGrid()
        {
            var igniteMock = new IgniteMock();

            DIBuilder.Continue()
            .Add(TRexGridFactory.AddGridFactoriesToDI)

            // Override the main Ignite grid factory method DI'ed from TRexGridFactory.AddGridFactoriesToDI()
            .Add(x => x.AddSingleton <Func <string, IgniteConfiguration, IIgnite> >(factory => (gridName, cfg) => igniteMock.mockIgnite.Object))
            .Complete();

            string GridName = "TestGrid";
            string Role     = "TestRole";

            Action act = () => new BaseIgniteClass(GridName, Role);

            act.Should().Throw <TRexException>().WithMessage($"{GridName} is an unknown grid to create a reference for.");
        }
コード例 #3
0
        public void AcquireIgniteTopologyProjections_FailWithNullComputeProjection()
        {
            var igniteMock = new IgniteMock();

            // Nobble the ICompute setup to mimic a null compute projection
            igniteMock.mockClusterGroup.Setup(x => x.GetCompute()).Returns((ICompute)null);

            DIBuilder.Continue()
            .Add(TRexGridFactory.AddGridFactoriesToDI)

            // Override the main Ignite grid factory method DI'ed from TRexGridFactory.AddGridFactoriesToDI()
            .Add(x => x.AddSingleton <Func <string, IgniteConfiguration, IIgnite> >(factory => (gridName, cfg) => igniteMock.mockIgnite.Object))
            .Complete();

            var GridName = TRexGrids.GridName(StorageMutability.Immutable);
            var Role     = "TestRole";

            Action act = () => new BaseIgniteClass(GridName, Role);

            act.Should().Throw <TRexException>().WithMessage($"Compute projection is null in AcquireIgniteTopologyProjections on grid {GridName}");
        }
コード例 #4
0
        public void AcquireIgniteTopologyProjections_FailWithEmptyClusterGroup()
        {
            var igniteMock = new IgniteMock();

            // Nobble the IClusterNodes.Count() setup to mimic an empty cluster group

            igniteMock.mockClusterNodes.Setup(x => x.Count).Returns(0);
            igniteMock.mockCluster.Setup(x => x.GetNodes()).Returns((List <IClusterNode>)null);

            DIBuilder.Continue()
            .Add(TRexGridFactory.AddGridFactoriesToDI)

            // Override the main Ignite grid factory method DI'ed from TRexGridFactory.AddGridFactoriesToDI()
            .Add(x => x.AddSingleton <Func <string, IgniteConfiguration, IIgnite> >(factory => (gridName, cfg) => igniteMock.mockIgnite.Object))
            .Complete();

            string GridName = TRexGrids.GridName(StorageMutability.Immutable);
            string Role     = "TestRole";

            Action act = () => new BaseIgniteClass(GridName, Role);

            act.Should().Throw <TRexException>().WithMessage($"Group cluster topology is empty for role {Role} on grid {GridName}");
        }