Beispiel #1
0
        public ComponentRegistryService(
            StorageService storageService,
            SystemStatusService systemStatusService,
            MessageBusService messageBusService,
            AppService appService,
            ComponentInitializerService componentInitializerService,
            ILogger <ComponentRegistryService> logger)
        {
            _storageService              = storageService ?? throw new ArgumentNullException(nameof(storageService));
            _messageBusService           = messageBusService ?? throw new ArgumentNullException(nameof(messageBusService));
            _componentInitializerService = componentInitializerService ?? throw new ArgumentNullException(nameof(componentInitializerService));
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            _messageBusWrapper = new ComponentRegistryMessageBusWrapper(messageBusService);

            if (systemStatusService == null)
            {
                throw new ArgumentNullException(nameof(systemStatusService));
            }
            systemStatusService.Set("component_registry.count", () => _components.Count);

            if (appService is null)
            {
                throw new ArgumentNullException(nameof(appService));
            }
            appService.RegisterStatusProvider("components", () =>
            {
                return(GetComponents().Select(c => ComponentsController.CreateComponentModel(c)));
            });
        }
Beispiel #2
0
        public void AddTest()
        {
            var account         = TestHelper.GetTestAccount();
            var user            = TestHelper.GetAccountAdminUser(account.Id);
            var componentTypeId = TestHelper.CreateRandomComponentTypeId(account.Id);

            ComponentAddModel model;

            using (var controller = new ComponentsController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Add();
                model = (ComponentAddModel)result.Model;
            }

            model.SystemName      = Guid.NewGuid().ToString();
            model.DisplayName     = Guid.NewGuid().ToString();
            model.ComponentTypeId = componentTypeId;
            model.Version         = "1.2.3.4";

            using (var controller = new ComponentsController(account.Id, user.Id))
            {
                controller.Add(model);
            }

            var accountContext = AccountDbContext.CreateFromAccountId(account.Id);
            var component      = accountContext.Components.Single(x => x.SystemName == model.SystemName);

            Assert.NotNull(component);
            Assert.Equal(model.SystemName, component.SystemName);
            Assert.Equal(model.DisplayName, component.DisplayName);
            Assert.Equal(model.ComponentTypeId, component.ComponentTypeId);
            Assert.Equal(model.Version, component.Version);
        }
Beispiel #3
0
        /// <summary>
        /// Детализация по компоненту - общее состояние
        /// </summary>
        public ActionResult ComponentDetailsState(Guid id)
        {
            var repository = CurrentAccountDbContext.GetComponentRepository();
            var component  = repository.GetById(id);

            var eventsMiniStatus    = ComponentsController.GetEventsMiniStatusModel(id, CurrentAccountDbContext);
            var unittestsMiniStatus = ComponentsController.GetUnittestsMiniStatusModel(CurrentUser.AccountId, id, CurrentAccountDbContext);
            var metricsMiniStatus   = ComponentsController.GetMetricsMiniStatusModel(CurrentUser.AccountId, id, CurrentAccountDbContext);
            var childsMiniStatus    = ComponentsController.GetChildsMiniStatusModel(CurrentUser.AccountId, id, CurrentAccountDbContext);

            var model = new ComponentDetailsStateModel()
            {
                Id                  = id,
                SystemName          = component.SystemName,
                Status              = component.ExternalStatus.Status,
                StatusEventId       = component.ExternalStatus.StatusEventId,
                StatusDuration      = component.ExternalStatus.GetDuration(MvcApplication.GetServerDateTime()),
                CanEdit             = CurrentUser.CanEditCommonData() && !component.IsRoot,
                IsEnabled           = component.Enable,
                EventsMiniStatus    = eventsMiniStatus,
                UnittestsMiniStatus = unittestsMiniStatus,
                MetricsMiniStatus   = metricsMiniStatus,
                ChildsMiniStatus    = childsMiniStatus
            };

            return(PartialView(model));
        }
        public void CreateTest()
        {
            var mockComSet = new Mock <DbSet <Component> >();

            mockComSet.As <IQueryable <Component> >().Setup(m => m.Provider).Returns(Components.Provider);
            mockComSet.As <IQueryable <Component> >().Setup(m => m.Expression).Returns(Components.Expression);
            mockComSet.As <IQueryable <Component> >().Setup(m => m.ElementType).Returns(Components.ElementType);
            mockComSet.As <IQueryable <Component> >().Setup(m => m.GetEnumerator()).Returns(Components.GetEnumerator());

            Mock <DatabaseContext> mockContext = new Mock <DatabaseContext>();

            mockContext.Setup(x => x.Components).Returns(mockComSet.Object);

            var controller = new ComponentsController(mockContext.Object);

            var vModel = new CreateComponentViewmodel();

            vModel.Component = new Component();
            vModel.Component.ComponentName = "TEST";

            vModel.SpecificComponentListAsJson =
                "[{'ComponentNumber':'1','SerieNr':'a','LoanInformation':null},{'ComponentNumber':'2','SerieNr':'b','LoanInformation':null}]";

            var result = controller.Create(vModel);

            mockComSet.Verify(x => x.Add(It.IsAny <Component>()), Times.Exactly(1));
        }
        public void EditTest()
        {
            var mockComSet = new Mock <DbSet <Component> >();

            mockComSet.As <IQueryable <Component> >().Setup(m => m.Provider).Returns(Components.Provider);
            mockComSet.As <IQueryable <Component> >().Setup(m => m.Expression).Returns(Components.Expression);
            mockComSet.As <IQueryable <Component> >().Setup(m => m.ElementType).Returns(Components.ElementType);
            mockComSet.As <IQueryable <Component> >().Setup(m => m.GetEnumerator()).Returns(Components.GetEnumerator());

            Mock <DatabaseContext> mockContext = new Mock <DatabaseContext>();

            mockContext.Setup(x => x.Components).Returns(mockComSet.Object);

            var controller = new ComponentsController(mockContext.Object);

            var vModel = new CreateComponentViewmodel();

            vModel.Component = new Component();
            vModel.Component.ComponentName = "TEST";

            vModel.SpecificComponentListAsJson =
                "[{'ComponentNumber':'1','SerieNr':'a','LoanInformation':null},{'ComponentNumber':'2','SerieNr':'b','LoanInformation':null}]";

            var result = controller.Edit(vModel) as RedirectToRouteResult;

            mockContext.Verify(x => x.SaveChanges(), Times.Exactly(1));
            Assert.IsTrue(result.RouteValues.ContainsValue("Index"));
        }
        public void About()
        {
            // Arrange
            ComponentsController controller = new ComponentsController();

            // Act
            ViewResult result = controller.Alerts() as ViewResult;

            // Assert
            Assert.AreEqual("Alerts go here.", result.ViewBag.Message);
        }
        public void Index()
        {
            // Arrange
            ComponentsController controller = new ComponentsController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
Beispiel #8
0
        public void DeleteTest()
        {
            var account = TestHelper.GetTestAccount();
            var user    = TestHelper.GetAccountAdminUser(account.Id);

            // Создадим компонент
            var componentInfo = account.CreateTestApplicationComponent();

            // Удалим его
            using (var controller = new ComponentsController(account.Id, user.Id))
            {
                controller.Delete(componentInfo.Id, "fake");
            }

            // Проверим, что компонент удалился
            var accountContext = AccountDbContext.CreateFromAccountId(account.Id);
            var repository     = accountContext.GetComponentRepository();
            var component      = repository.GetByIdOrNull(componentInfo.Id);

            Assert.NotNull(component);
            Assert.True(component.IsDeleted);
        }