コード例 #1
0
 public EventTypesTest()
 {
     //Arrange
     controller = new EventTypesController(new InMemoryEventTypesAgent());
     //must set explicitly for tests to work
     controller.ObjectValidator = new InMemoryModelValidator();
 }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EventTypesControllerTest"/> class.
 /// </summary>
 public EventTypesControllerTest()
 {
     this.manager = new Mock<IEventTypeManager>();
     this.controller = new EventTypesController(this.manager.Object);
     this.controller.Request = new HttpRequestMessage();
     this.controller.Configuration = new HttpConfiguration();
 }
コード例 #3
0
        public async void Edit_ReturnsANotFoundResult(int?eventtyperId)
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = await eventtypescontroller.Edit(eventtyperId);

            //Assert
            Assert.IsType <NotFoundResult>(result);
        }
コード例 #4
0
        public void Create_ReturnsAViewResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = eventtypescontroller.Create();

            //Assert
            Assert.IsType <ViewResult>(result);
        }
コード例 #5
0
        public async void Index_ReturnsAViewResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = await eventtypescontroller.Index(null, "", "", null);

            //Assert
            Assert.IsType <ViewResult>(result);
        }
コード例 #6
0
        public async void Details_ReturnsAViewResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = await eventtypescontroller.Details(1);

            //Assert
            Assert.IsType <ViewResult>(result);
        }
コード例 #7
0
        public async void Edit_Post_RedirectToActionResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = await eventtypescontroller.Edit(1, context.EventTypes.First());

            //Assert
            Assert.IsType <RedirectToActionResult>(result);
        }
コード例 #8
0
        public async void Delete_Confirm_RedirectToActionResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = await eventtypescontroller.DeleteConfirmed(1);

            //Assert
            Assert.IsType <RedirectToActionResult>(result);
        }
コード例 #9
0
        public async void Edit_Post_ReturnsANotFoundEventResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);
            //Act
            var result = await eventtypescontroller.Edit(2, new EventTypes()
            {
                Id = 2
            });

            //Assert
            Assert.IsType <NotFoundResult>(result);
        }
コード例 #10
0
        public async Task Edit_ReturnsHttpNotFoundWhenEventTypeIdNotFound()
        {
            //Arrange
            int EventTypeID = 4;
            var dbContext   = await GetDatabaseContext();

            var eventTypesController = new EventTypesController(dbContext);

            //Act
            var result = await eventTypesController.Edit(EventTypeID);

            //Assert
            Assert.IsType <NotFoundResult>(result);
        }
コード例 #11
0
        public async void CreateAdd_RedirectToActionResult()
        {
            //Arrange
            EventTypesController eventtypescontroller = new EventTypesController(context);

            //Act
            var result = await eventtypescontroller.Create(new EventTypes()
            {
                Id   = 2,
                Type = "Marrige"
            });

            //Assert
            Assert.IsType <RedirectToActionResult>(result);
        }
コード例 #12
0
        public async Task Index_ReturnsAViewResult_WithAListOfEventTypes()
        {
            //Arrange
            var dbContext = await GetDatabaseContext();

            var eventTypesController = new EventTypesController(dbContext);
            //Act
            var result = await eventTypesController.Index("", "", "", null);

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IEnumerable <EventType> >(
                viewResult.ViewData.Model);

            Assert.Equal(2, model.Count());
        }
コード例 #13
0
        public void EventTypeEditTest()
        {
            var account   = TestHelper.GetTestAccount();
            var user      = TestHelper.GetAccountAdminUser(account.Id);
            var eventType = TestHelper.GetTestEventType(account.Id);
            EventTypeEditModel model;

            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Edit(eventType.Id);
                model = (EventTypeEditModel)result.Model;
                Assert.Equal(eventType.Id, model.Id);
                Assert.Equal(eventType.DisplayName, model.DisplayName);
                Assert.Equal(eventType.SystemName, model.SystemName);
                Assert.Equal(eventType.Category, model.Category);
                Assert.Equal(TimeSpanHelper.FromSeconds(eventType.JoinIntervalSeconds), model.JoinInterval);
                Assert.Equal(eventType.OldVersion, model.OldVersion);
                Assert.Equal(eventType.ImportanceForOld, model.ImportanceForOld);
                Assert.Equal(eventType.ImportanceForNew, model.ImportanceForNew);
                Assert.Equal(eventType.IsSystem, model.IsSystem);
            }
            model.DisplayName     += "New";
            model.SystemName      += "New";
            model.Category         = EventCategory.ComponentEvent;
            model.JoinInterval     = TimeSpanHelper.FromSeconds(10);
            model.OldVersion       = "2.0.0.0";
            model.ImportanceForOld = EventImportance.Alarm;
            model.ImportanceForNew = EventImportance.Warning;
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                controller.Edit(model);
            }
            var accountContext      = AccountDbContext.CreateFromAccountId(account.Id);
            var eventTypeRepository = accountContext.GetEventTypeRepository();

            eventType = eventTypeRepository.GetById(model.Id);
            Assert.Equal(model.Id, eventType.Id);
            Assert.Equal(model.DisplayName, eventType.DisplayName);
            Assert.Equal(model.SystemName, eventType.SystemName);
            Assert.Equal(model.Category, eventType.Category);
            Assert.Equal(model.JoinInterval, TimeSpanHelper.FromSeconds(eventType.JoinIntervalSeconds));
            Assert.Equal(model.OldVersion, eventType.OldVersion);
            Assert.Equal(model.ImportanceForOld, eventType.ImportanceForOld);
            Assert.Equal(model.ImportanceForNew, eventType.ImportanceForNew);
            Assert.Equal(model.IsSystem, eventType.IsSystem);
        }
コード例 #14
0
        public async Task Details_ReturnsViewResultWithEventTypeModel()
        {
            //Arrange
            var dbContext = await GetDatabaseContext();

            var eventTypesController = new EventTypesController(dbContext);

            //Act
            var result = await eventTypesController.Details(11);

            //Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsType <EventType>(
                viewResult.ViewData.Model);

            Assert.Equal(11, model.EventTypeID);
            Assert.Equal("Sport", model.Type);
        }
コード例 #15
0
        public void EventTypeDeleteTest()
        {
            var account = TestHelper.GetTestAccount();
            var user    = TestHelper.GetAccountAdminUser(account.Id);

            DeleteConfirmationModel model;
            string systemName;

            using (var accountContext = AccountDbContext.CreateFromAccountId(account.Id))
            {
                var eventTypeRepository = new EventTypeRepository(accountContext);
                var eventType           = new EventType()
                {
                    Category            = EventCategory.ComponentEvent,
                    DisplayName         = "Тестовый тип события " + DateTime.Now.Ticks,
                    ImportanceForNew    = EventImportance.Success,
                    JoinIntervalSeconds = 0,
                    SystemName          = "EventType.Test " + DateTime.Now.Ticks
                };
                eventType  = eventTypeRepository.GetOrCreate(eventType);
                systemName = eventType.SystemName;

                using (var controller = new EventTypesController(account.Id, user.Id))
                {
                    var result = (ViewResultBase)controller.Delete(eventType.Id);
                    model = (DeleteConfirmationModel)result.Model;
                }
                using (var controller = new EventTypesController(account.Id, user.Id))
                {
                    controller.Delete(model);
                }
            }

            using (var accountContext = AccountDbContext.CreateFromAccountId(account.Id))
            {
                var eventTypeRepository = new EventTypeRepository(accountContext);
                var eventType           = eventTypeRepository.GetById(Guid.Parse(model.Id));
                Assert.NotNull(eventType);
                Assert.True(eventType.IsDeleted);
                eventType = eventTypeRepository.GetOneOrNullBySystemName(systemName);
                Assert.Null(eventType);
            }
        }
コード例 #16
0
        public void EventTypeShowTest()
        {
            var account   = TestHelper.GetTestAccount();
            var user      = TestHelper.GetAccountAdminUser(account.Id);
            var eventType = TestHelper.GetTestEventType(account.Id);

            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Show(eventType.Id, TimelineInterval.Day);
                var model  = (EventTypeShowModel)result.Model;
                Assert.Equal(eventType.Id, model.Id);
                Assert.Equal(eventType.DisplayName, model.DisplayName);
                Assert.Equal(eventType.SystemName, model.SystemName);
                Assert.Equal(eventType.Category, model.Category);
                Assert.Equal(eventType.JoinIntervalSeconds, TimeSpanHelper.GetSeconds(model.JoinInterval));
                Assert.Equal(eventType.OldVersion, model.OldVersion);
                Assert.Equal(eventType.ImportanceForOld, model.ImportanceForOld);
                Assert.Equal(eventType.ImportanceForNew, model.ImportanceForNew);
                Assert.Equal(eventType.IsSystem, model.IsSystem);
            }
        }
コード例 #17
0
        public void EventTypeAddTest()
        {
            var account = TestHelper.GetTestAccount();
            var user    = TestHelper.GetAccountAdminUser(account.Id);

            EventTypeEditModel model;

            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Add();
                model = (EventTypeEditModel)result.Model;
            }
            model.DisplayName      = "New test event type " + Guid.NewGuid();
            model.SystemName      += model.DisplayName;
            model.Category         = EventCategory.ComponentEvent;
            model.ImportanceForNew = EventImportance.Success;
            model.JoinInterval     = TimeSpan.FromSeconds(10);
            model.OldVersion       = "1.0.0.0";
            model.ImportanceForOld = EventImportance.Alarm;
            model.ImportanceForNew = EventImportance.Warning;
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                controller.Add(model);
            }
            var accountContext      = AccountDbContext.CreateFromAccountId(account.Id);
            var eventTypeRepository = accountContext.GetEventTypeRepository();
            var eventType           = eventTypeRepository.GetOneOrNullBySystemName(model.SystemName);

            Assert.NotNull(eventType);
            Assert.Equal(model.DisplayName, eventType.DisplayName);
            Assert.Equal(model.SystemName, eventType.SystemName);
            Assert.Equal(model.Category, eventType.Category);
            Assert.Equal(model.JoinInterval, TimeSpanHelper.FromSeconds(eventType.JoinIntervalSeconds));
            Assert.Equal(model.OldVersion, eventType.OldVersion);
            Assert.Equal(model.ImportanceForOld, eventType.ImportanceForOld);
            Assert.Equal(model.ImportanceForNew, eventType.ImportanceForNew);
            Assert.Equal(model.IsSystem, eventType.IsSystem);
        }
コード例 #18
0
 public void SetUp()
 {
     mockEventTypesRepository = new Mock <IEventTypesRepository>();
     sut = new EventTypesController(mockEventTypesRepository.Object);
 }
コード例 #19
0
        public void EventTypesListTest()
        {
            var account             = TestHelper.GetTestAccount();
            var user                = TestHelper.GetAccountAdminUser(account.Id);
            var accountContext      = AccountDbContext.CreateFromAccountId(account.Id);
            var eventTypeRepository = accountContext.GetEventTypeRepository();

            // Создадим три типа событий
            // ComponentEvent, Info
            var eventType1 = new EventType()
            {
                Category            = EventCategory.ComponentEvent,
                DisplayName         = "Тестовый тип события " + DateTime.Now.Ticks + " ComponentEvent, Info",
                ImportanceForNew    = EventImportance.Success,
                JoinIntervalSeconds = 0,
                SystemName          = "EventType.Test " + DateTime.Now.Ticks + " ComponentEvent, Info"
            };

            eventType1 = eventTypeRepository.GetOrCreate(eventType1);

            // ComponentEvent, Alarm
            var eventType2 = new EventType()
            {
                Category            = EventCategory.ComponentEvent,
                DisplayName         = "Тестовый тип события " + DateTime.Now.Ticks + " ComponentEvent, Alarm",
                ImportanceForNew    = EventImportance.Alarm,
                JoinIntervalSeconds = 0,
                SystemName          = "EventType.Test " + DateTime.Now.Ticks + " ComponentEvent, Alarm"
            };

            eventType2 = eventTypeRepository.GetOrCreate(eventType2);

            // ApplicationError, Alarm
            var eventType3 = new EventType()
            {
                Category            = EventCategory.ApplicationError,
                DisplayName         = "Тестовый тип события " + DateTime.Now.Ticks + " ApplicationError, Alarm",
                ImportanceForNew    = EventImportance.Alarm,
                JoinIntervalSeconds = 0,
                SystemName          = "EventType.Test " + DateTime.Now.Ticks + " ApplicationError, Alarm"
            };

            eventType3 = eventTypeRepository.GetOrCreate(eventType3);

            // Проверим, что на странице без фильтров есть только типы с категорией ComponentEvent
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index();
                var model  = (EventTypesListModel)result.Model;
                var types  = model.EventTypes.ToList();
                Assert.True(types.Any(t => t.Id == eventType1.Id));
                Assert.True(types.Any(t => t.Id == eventType2.Id));
                Assert.False(types.Any(t => t.Id == eventType3.Id));
            }

            // Проверим фильтр по категории
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index(category: "ApplicationError");
                var model  = (EventTypesListModel)result.Model;
                Assert.False(model.EventTypes.Any(t => t.Id == eventType1.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType2.Id));
                Assert.True(model.EventTypes.Any(t => t.Id == eventType3.Id));
            }

            // Проверим фильтр по важности
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index(importance: "Alarm");
                var model  = (EventTypesListModel)result.Model;
                Assert.False(model.EventTypes.Any(t => t.Id == eventType1.Id));
                Assert.True(model.EventTypes.Any(t => t.Id == eventType2.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType3.Id));
            }

            // Проверим фильтр по названию
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index(search: eventType1.SystemName);
                var model  = (EventTypesListModel)result.Model;
                Assert.True(model.EventTypes.Any(t => t.Id == eventType1.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType2.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType3.Id));
            }
            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index(category: "ApplicationError", search: eventType3.DisplayName);
                var model  = (EventTypesListModel)result.Model;
                Assert.False(model.EventTypes.Any(t => t.Id == eventType1.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType2.Id));
                Assert.True(model.EventTypes.Any(t => t.Id == eventType3.Id));
            }

            //Проверим фильтр по удалённым
            eventTypeRepository.Remove(eventType2);

            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index();
                var model  = (EventTypesListModel)result.Model;
                Assert.True(model.EventTypes.Any(t => t.Id == eventType1.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType2.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType3.Id));
            }

            using (var controller = new EventTypesController(account.Id, user.Id))
            {
                var result = (ViewResultBase)controller.Index(showDeleted: 1);
                var model  = (EventTypesListModel)result.Model;
                Assert.True(model.EventTypes.Any(t => t.Id == eventType1.Id));
                Assert.True(model.EventTypes.Any(t => t.Id == eventType2.Id));
                Assert.False(model.EventTypes.Any(t => t.Id == eventType3.Id));
            }
        }