public void TestGetByIdStudent()
        {
            var repository = Mock.Create <IRepository <Student> >();
            var student    = new Student()
            {
                Id        = 1,
                FirstName = "Pesho",
                LastName  = "Peshov",
                Grade     = 3
            };

            Mock.Arrange <Student>(
                () => repository.Get(student.Id))
            .IgnoreArguments()
            .Returns(student)
            .MustBeCalled();

            var controller = new StudentController(repository);

            SetupController.Create(controller, "get", "student");
            var result = controller.GetById(student.Id);

            Assert.AreEqual(result.Id, student.Id);
            Assert.AreEqual(result.FirstName, student.FirstName);
            Assert.AreEqual(result.LastName, student.LastName);
            Assert.AreEqual(result.Grade, student.Grade);
        }
        public void Interact(Action onCompletion)
        {
            this.onCompletion = onCompletion;
            controller        = new SetupController();
            CLI.DisplayLine("Welcome to the DiagnosticChain!");
            CLI.DisplayLineDelimiter();

            var userInput = PromptUsername();

            if (userInput == UIConstants.abortionCode)
            {
                return;
            }

            if (userInput == "")
            {
                userInput = SetupNewUser();
            }
            if (userInput == UIConstants.abortionCode)
            {
                return;
            }

            controller.SetupForUser(userInput).Interact(OnControllerCompletion);
        }
Beispiel #3
0
        /// <inheritdoc/>
        public override void AddUpdateSteps(SetupController <NodeDefinition> controller)
        {
            base.Initialize(controller);

            controller.AddStep(GetStepLabel("elasticsearch"), (node, stepDelay) => UpdateElasticsearch(node));
            controller.AddStep(GetStepLabel("ceph-fuse"), (node, stepDelay) => UpdateCephFuse(node));

            // $todo(jeff.lill):
            //
            // Update these component scripts to remove this secret: neon-hivemq-neon
            //
            //      neon-hive-manager.sh
            //      neon-proxy-manager.sh
            //      neon-proxy-public.sh
            //      neon-proxy-private.sh
            //
            // Remove these Docker secrets after updating services:
            //
            //      neon-hivemq-neon
            //      neon-hivemq-sysadmin
            //      neon-hivemq-app
            //
            // We also need to reconfigure the AMPQ private [neon-hivemq-ampq] traffic manager rule
            // as TCP because older builds incorrectly configured this as an HTTP proxy.

            controller.AddGlobalStep(GetStepLabel("hivemq-settings"), () => UpdateHiveMQSettings());
            controller.AddGlobalStep(GetStepLabel("hivemq cluster name"), () => UpdateHiveMQClusterName());
            controller.AddGlobalStep(GetStepLabel("rename log-retention-days"), () => UpdateLogRetentionDays());
            controller.AddGlobalStep(GetStepLabel("proxy cache services"), () => UpdateProxyCacheServices());

            controller.AddStep(GetStepLabel("edit proxy bridge scripts"), (node, stepDelay) => UpdateProxyBridgeScripts(node));
        }
Beispiel #4
0
        /// <summary>
        /// Updates the hive services and containers.
        /// </summary>
        /// <param name="force"><c>true</c> to disable the update prompt.</param>
        /// <param name="maxParallel">Maximum number of parallel operations.</param>
        /// <param name="imageTag">Optionally overrides the default image tag.</param>
        private void UpdateServices(bool force, int maxParallel, string imageTag = null)
        {
            EnsureRootPivileges();

            if (!force && !Program.PromptYesNo($"*** Are you sure you want to UPDATE HIVE services on [{hive.Name}]?"))
            {
                Program.Exit(0);
            }

            var controller = new SetupController <NodeDefinition>("hive update images", hive.Nodes)
            {
                MaxParallel = maxParallel,
                ShowStatus  = true
            };

            controller.SetDefaultRunOptions(RunOptions.FaultOnError);

            HiveUpdateManager.AddHiveUpdateSteps(hive, controller, out var restartRequired, servicesOnly: true, serviceUpdateParallism: Program.MaxParallel, imageTag: imageTag);

            if (controller.StepCount == 0)
            {
                Console.WriteLine("The hive is already up-to-date.");
                Program.Exit(0);
            }

            if (!controller.Run())
            {
                Console.Error.WriteLine("*** ERROR: One or more UPDATE steps failed.");
                Program.Exit(1);
            }

            Console.WriteLine();
            Console.WriteLine("*** Hive services and containers were updated successfully.");
        }
        public void TestAddCorrectStudent()
        {
            bool isItemAdded = false;
            var  repository  = Mock.Create <IRepository <Student> >();

            var studentModel = new StudentModel()
            {
                FirstName = "Pesho",
                LastName  = "Peshov",
                Grade     = 3
            };
            var studentEntity = new Student()
            {
                Id        = 1,
                FirstName = studentModel.FirstName,
                LastName  = studentModel.LastName,
                Grade     = studentModel.Grade
            };

            Mock.Arrange(() => repository.Add(Arg.IsAny <Student>()))
            .DoInstead(() => isItemAdded = true)
            .Returns(studentEntity);

            var controller = new StudentController(repository);

            SetupController.Create(controller, "post", "student");

            var result = controller.Post(studentEntity);

            Assert.IsTrue(result.IsSuccessStatusCode);
            Assert.IsTrue(isItemAdded);
        }
Beispiel #6
0
        public void AddFacet_Action_Returns_View_With_A_Facet()
        {
            var controller = new SetupController(facetService);
            var result     = controller.AddFacet();

            result.AssertViewRendered().ForView("EditFacet").WithViewData <Facet>();
        }
Beispiel #7
0
        public void TestAddCorrectMark()
        {
            bool isItemAdded = false;
            var  repository  = Mock.Create <IRepository <Mark> >();

            var markModel = new MarkModel()
            {
                Value   = 5,
                Subject = "Math"
            };
            var markEntity = new Mark()
            {
                Id      = 1,
                Value   = markModel.Value,
                Subject = markModel.Subject
            };

            Mock.Arrange(() => repository.Add(Arg.IsAny <Mark>()))
            .DoInstead(() => isItemAdded = true)
            .Returns(markEntity);

            var controller = new MarkController(repository);

            SetupController.Create(controller, "post", "mark");

            var result = controller.Post(markEntity);

            Assert.IsTrue(result.IsSuccessStatusCode);
            Assert.IsTrue(isItemAdded);
        }
Beispiel #8
0
        public void Index_Action_Returns_View()
        {
            var controller = new SetupController(facetService);
            var result     = controller.Index();

            result.AssertViewRendered();
        }
        public void TestGetByIdSchool()
        {
            var repository = Mock.Create <IRepository <School> >();
            var school     = new School()
            {
                Id       = 1,
                Name     = "PMG",
                Location = "Sofia"
            };

            Mock.Arrange <School>(
                () => repository.Get(school.Id))
            .IgnoreArguments()
            .Returns(school)
            .MustBeCalled();

            var controller = new SchoolController(repository);

            SetupController.Create(controller, "get", "school");
            var result = controller.GetSchool(school.Id);

            Assert.AreEqual(result.Id, school.Id);
            Assert.AreEqual(result.Name, school.Name);
            Assert.AreEqual(result.Location, school.Location);
        }
Beispiel #10
0
        public void TestGetByIdMark()
        {
            var repository = Mock.Create <IRepository <Mark> >();
            var mark       = new Mark()
            {
                Id      = 1,
                Subject = "Psycho",
                Value   = 3
            };

            Mock.Arrange <Mark>(
                () => repository.Get(mark.Id))
            .IgnoreArguments()
            .Returns(mark)
            .MustBeCalled();

            var controller = new MarkController(repository);

            SetupController.Create(controller, "get", "mark");
            var result = controller.GetById(mark.Id);

            Assert.AreEqual(result.Id, mark.Id);
            Assert.AreEqual(result.Subject, mark.Subject);
            Assert.AreEqual(result.Value, mark.Value);
        }
        public void TestAddCorrectSchool()
        {
            bool isItemAdded = false;
            var  repository  = Mock.Create <IRepository <School> >();

            var schoolModel = new SchoolModel()
            {
                Name     = "PMG",
                Location = "Sofia"
            };
            var schoolEntity = new School()
            {
                Id       = 1,
                Name     = schoolModel.Name,
                Location = schoolModel.Location
            };

            Mock.Arrange(() => repository.Add(Arg.IsAny <School>()))
            .DoInstead(() => isItemAdded = true)
            .Returns(schoolEntity);

            var controller = new SchoolController(repository);

            SetupController.Create(controller, "post", "school");

            var result = controller.PostSchool(schoolEntity);

            Assert.IsTrue(result.IsSuccessStatusCode);
            Assert.IsTrue(isItemAdded);
        }
Beispiel #12
0
        public void PlaceBoat_B3_C5_False()
        {
            SetupController setup = new SetupController(10);

            setup.Click(setup.grid.grid[1, 2]);
            setup.Click(setup.grid.grid[2, 4]);
            Assert.AreEqual(0, setup.boats.Count);
        }
Beispiel #13
0
 public static void InitializeSetup(SetupController sc)
 {
     if (instance == null)
     {
         InitializeLocal();
     }
     instance.InitializeSetupImpl(sc);
 }
Beispiel #14
0
 /// <summary>
 /// C-tor
 /// </summary>
 public SetupPage()
 {
     InitializeComponent();
     _controller = new SetupController(this);
     _controller.DeviceInformationReceived += OnDeviceInformationReceived;
     _controller.OperationStarted          += OnGetDeviceInformationBegin;
     _controller.OperationCompleted        += OnGetDeviceInformationEnd;
 }
Beispiel #15
0
        /// <inheritdoc/>
        public override void AddUpdateSteps(SetupController <NodeDefinition> controller)
        {
            base.Initialize(controller);

            controller.AddGlobalStep(GetStepLabel("make neon-registry LB rule private"), () => PrivateRegistryRule());
            controller.AddStep(GetStepLabel("remove docker python module"), (node, stepDelay) => RemoveDockerPython(node));
            controller.AddStep(GetStepLabel("edit /etc/hosts"), (node, stepDelay) => EditEtcHosts(node));
        }
Beispiel #16
0
 protected override void InitializeSetupImpl(SetupController sc)
 {
     base.InitializeSetupImpl(sc);
     sc.opponentSquadPanel.gameObject.SetActive(true);
     sc.opponentSquadPanel.SetAddCallback(sc.AddSelectedToOpponentSquad);
     sc.backButton.onClick.AddListener(sc.EnterInitial);
     gameClient.AsLocal().ConnectToGameServer();
 }
Beispiel #17
0
        /// <summary>
        /// Updates the Linux distribution on all hive nodes and then reboots them
        /// one at a time, giving each of them some time to stabilize before rebooting
        /// the next node.
        /// </summary>
        /// <param name="force"><c>true</c> to disable the update prompt.</param>
        /// <param name="maxParallel">Maximum number of parallel operations.</param>
        private void UpdateLinux(bool force, int maxParallel)
        {
            EnsureRootPivileges();

            if (!force && !Program.PromptYesNo($"*** Are you sure you want to UPDATE LINUX on [{hive.Name}] hive nodes?"))
            {
                Program.Exit(0);
            }

            var firstManager = hive.FirstManager;

            var controller = new SetupController <NodeDefinition>("hive update linux", hive.Nodes)
            {
                MaxParallel = maxParallel,
                ShowStatus  = !Program.Quiet
            };

            controller.SetDefaultRunOptions(RunOptions.FaultOnError);

            controller.AddStep("fetch updates",
                               (node, stepDelay) =>
            {
                Thread.Sleep(stepDelay);

                node.Status = "run: safe-apt-get update";
                node.SudoCommand("safe-apt-get update");
            });

            controller.AddStep("update managers",
                               UpdateLinux,
                               n => n.Metadata.IsManager,
                               parallelLimit: 1);

            if (hive.Workers.Count() > 0)
            {
                controller.AddStep("update workers",
                                   UpdateLinux,
                                   n => n.Metadata.IsWorker,
                                   parallelLimit: 1);
            }

            if (hive.Pets.Count() > 0)
            {
                controller.AddStep("update pets",
                                   UpdateLinux,
                                   n => n.Metadata.IsPet,
                                   parallelLimit: 1);
            }

            if (!controller.Run())
            {
                Console.Error.WriteLine("*** ERROR: One or more UPDATE steps failed.");
                Program.Exit(1);
            }

            Console.WriteLine();
            Console.WriteLine("*** Linux packages was updated successfully.");
        }
Beispiel #18
0
        /// <summary>
        /// Updates the Docker engine on all hive nodes and then restarts them
        /// one at a time, giving each of them some time to stabilize before
        /// updating the next node.
        /// </summary>
        /// <param name="force"><c>true</c> to disable the update prompt.</param>
        /// <param name="version">The Docker version to install.</param>
        /// <param name="maxParallel">Maximum number of parallel operations.</param>
        private void UpdateDocker(bool force, string version, int maxParallel)
        {
            Covenant.Requires <ArgumentNullException>(!string.IsNullOrEmpty(version));

            EnsureRootPivileges();

            if (!hive.Headend.IsDockerCompatible(hive.Globals.Version, version, out var message))
            {
                Console.Error.WriteLine($"*** ERROR: {message}");
                Program.Exit(1);
            }

            if (!force && !Program.PromptYesNo($"*** Are you sure you want to UPDATE DOCKER on [{hive.Name}] hive nodes?"))
            {
                Program.Exit(0);
            }

            this.version          = version;
            this.dockerPackageUri = hive.Headend.GetDockerPackageUri(version, out message);

            var controller = new SetupController <NodeDefinition>($"hive update docker: {version}", hive.Nodes)
            {
                MaxParallel = maxParallel,
                ShowStatus  = !Program.Quiet
            };

            controller.SetDefaultRunOptions(RunOptions.FaultOnError);

            controller.AddStep("update managers",
                               UpdateDocker,
                               n => n.Metadata.IsManager,
                               parallelLimit: 1);

            if (hive.Workers.Count() > 0)
            {
                controller.AddStep("update workers",
                                   UpdateDocker,
                                   n => n.Metadata.IsWorker,
                                   parallelLimit: 1);
            }

            if (hive.Pets.Count() > 0)
            {
                controller.AddStep("update pets",
                                   UpdateDocker,
                                   n => n.Metadata.IsPet,
                                   parallelLimit: 1);
            }

            if (!controller.Run())
            {
                Console.Error.WriteLine("*** ERROR: One or more DOCKER UPDATE steps failed.");
                Program.Exit(1);
            }

            Console.WriteLine();
            Console.WriteLine("*** Docker Engine was updated successfully.");
        }
Beispiel #19
0
        public void SaveFacet_Action_With_New_Facet_Inserts_And_Redirects_To_Action()
        {
            facetService.Insert(new Facet());

            var controller = new SetupController(facetService);
            var result     = controller.SaveFacet(new Facet());

            result.AssertActionRedirect();
        }
Beispiel #20
0
        public void ListFacets_Action_Returns_View_With_A_ViewModel()
        {
            facetService.All().Returns(new List <Facet>());

            var controller = new SetupController(facetService);
            var result     = controller.ListFacets();

            result.AssertViewRendered().WithViewData <FacetListViewModel>();
        }
 public Setup(int size) : base()
 {
     InitializeComponent();
     this.size                     = size;
     controller                    = new SetupController(size);
     controller.OnRefresh         += new Refresh(OnRefresh);
     controller.OnEnableBtnCancel += new EnableBtnCancel(OnEnableBtnCancel);
     controller.OnEnableBtnNext   += new EnableBtnNext(OnEnableBtnNext);
     MakeGrid();
 }
Beispiel #22
0
        private static void LocateTesterPath(UpdatableProgram program)
        {
            Console.Write("Write the path to your ZWSetup cloned repository: ");
            string rootFolder = Console.ReadLine();

            SetupController.LocateTester(rootFolder);
            Console.WriteLine("Sucesfully located Tester project.", Color.DarkGreen);
            Console.Read();

            program.RedrawCurrentPage(true);
        }
Beispiel #23
0
        public void PlaceBoat_B3_B5_True()
        {
            SetupController setup = new SetupController(10);

            setup.Click(setup.grid.grid[1, 2]);
            setup.Click(setup.grid.grid[1, 4]);
            Assert.AreEqual(1, setup.boats.Count);
            Boat boat = setup.boats[0];

            Assert.AreEqual(Direction.Down, boat.orientation);
            Assert.AreEqual(3, boat.cells.Count);
        }
Beispiel #24
0
    void Awake()
    {
        if (staticSetupController != null)
        {
            Destroy(staticSetupController);
        }
        else
        {
            staticSetupController = this;
        }

        //DontDestroyOnLoad(this);
    }
Beispiel #25
0
        /// <summary>
        /// Prepends any required generic hive updates initialization steps
        /// to a setup controller.
        /// </summary>
        /// <param name="controller">The setup controller.</param>
        protected void Initialize(SetupController <NodeDefinition> controller)
        {
            Covenant.Requires <ArgumentNullException>(controller != null);

            controller.AddStep(GetStepLabel("initialize"),
                               (node, stepDelay) =>
            {
                node.Status = "update state";

                var updateFolder = LinuxPath.Combine(HiveHostFolders.State, "update", ToVersion.ToString());

                node.SudoCommand("mkdir -p", updateFolder);
                node.SudoCommand("chmod 770", updateFolder);
            },
                               noParallelLimit: true,
                               position: 0);
        }
Beispiel #26
0
        /// <summary>
        /// Updates the hive hive configuration, services and containers.
        /// </summary>
        /// <param name="force"><c>true</c> to disable the update prompt.</param>
        /// <param name="maxParallel">Maximum number of parallel operations.</param>
        /// <param name="imageTag">Optionally overrides the default image tag.</param>
        private void UpdateHive(bool force, int maxParallel, string imageTag = null)
        {
            EnsureRootPivileges();

            if (!force && !Program.PromptYesNo($"*** Are you sure you want to UPDATE HIVE components and services on [{hive.Name}]?"))
            {
                Program.Exit(0);
            }

            var controller = new SetupController <NodeDefinition>("hive update", hive.Nodes)
            {
                ShowStatus = !Program.Quiet
            };

            controller.MaxParallel = maxParallel;
            controller.SetDefaultRunOptions(RunOptions.FaultOnError);

            var hiveUpdateCount = HiveUpdateManager.AddHiveUpdateSteps(hive, controller, out var restartRequired, serviceUpdateParallism: Program.MaxParallel, imageTag: imageTag);

            if (controller.StepCount == 0)
            {
                Console.WriteLine("The hive is already up-to-date.");
                Program.Exit(0);
            }

            if (!controller.Run())
            {
                Console.Error.WriteLine("*** ERROR: One or more UPDATE steps failed.");
                Program.Exit(1);
            }

            Console.WriteLine();
            Console.WriteLine("*** Hive components, services, and containers were updated successfully.");

            if (hive.Globals.TryGetBool(HiveGlobals.UserDisableAutoUnseal, out var disableAutoUnseal) || !disableAutoUnseal)
            {
                Console.WriteLine();
                Console.WriteLine("*** WARNING: The hive Vault is probably sealed now because auto-unseal is disabled.");
                Console.WriteLine();
                Console.WriteLine("Use these command to check Vault status and manually unseal if necessary:");
                Console.WriteLine();
                Console.WriteLine("    neon vault -- status");
                Console.WriteLine("    Neon vault -- unseal");
                Console.WriteLine();
            }
        }
        public async Task GetFlowShouldReturnBadRequestWhenResultIsFailure()
        {
            //Arrange
            var flowLocal         = Result.Fail <FlowDataModel>("Bad request to EccSetup.API");
            var mobileServiceMock = new Mock <IMobileService>();

            mobileServiceMock.Setup(x => x.GetFlow(It.IsAny <FlowFilterFromBody>())).Returns(Task.FromResult(flowLocal));
            var mobileService = mobileServiceMock.Object;

            //Act
            var controller = new SetupController(mobileService);
            var response   = await controller.GetFlow(new FlowFilterFromBody());

            //Asert
            var result = response as BadRequestResult;

            result.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
        }
Beispiel #28
0
        public override void Display()
        {
            Console.Write("SLN File Path: ");
            string path = Console.ReadLine();

            if (path.IsDirectory())
            {
                var files = Directory.GetFiles(path, "*.sln");

                if (files.Length == 0)
                {
                    Console.WriteLine("The provided folder doesn't have any folder!", Color.Red);
                    (Program as UpdatableProgram).NavigateBack();
                    return;
                }

                path = files[0];
            }

            if (!File.Exists(path))
            {
                Console.WriteLine("The file you provided doesn't exists!", Color.Red);
                (Program as UpdatableProgram).NavigateBack();
                return;
            }

            ZTWPackage package = PackageController.Add(path);

            // Then check if we have located Tester project... To append a new item to its csproj
            if (!SetupController.CheckTesterPathDetermined())
            {
                Console.Write("Couldn't determine the Tester csproj file, please, determine it.", Color.Yellow);
                Console.Read();
                return;
            }

            TesterController.GenerateSetupInTester(package);

            Console.Write($"Added package '{package.Name}' succesfully! Press any key to go back...", Color.DarkGreen);
            Console.Read();

            (Program as UpdatableProgram).NavigateBack();
        }
        public async Task GetFlowShouldReturnNoContentResultWhenNoFlowFound()
        {
            //Arrange
            FlowDataModel model             = null;
            var           flowLocal         = Result.Ok(model);
            var           mobileServiceMock = new Mock <IMobileService>();

            mobileServiceMock.Setup(x => x.GetFlow(It.IsAny <FlowFilterFromBody>())).Returns(Task.FromResult(flowLocal));
            var mobileService = mobileServiceMock.Object;

            //Act
            var controller = new SetupController(mobileService);
            var response   = await controller.GetFlow(new FlowFilterFromBody());

            //Assert
            var result = response as NoContentResult;

            result.StatusCode.Should().Be((int)HttpStatusCode.NoContent);
        }
        public async Task GetFlowShouldReturnOKStatusCode()
        {
            var flowLocal = Result.Ok(new FlowDataModel()
            {
                Name = "Test"
            });
            var mobileServiceMock = new Mock <IMobileService>();

            mobileServiceMock.Setup(x => x.GetFlow(It.IsAny <FlowFilterFromBody>())).Returns(Task.FromResult(flowLocal));
            var mobileService = mobileServiceMock.Object;

            //Act
            var controller = new SetupController(mobileService);
            var response   = await controller.GetFlow(new FlowFilterFromBody());

            //Assert
            var result = response as OkObjectResult;

            result.StatusCode.Should().Be((int)HttpStatusCode.OK);
        }