public void AddApplication()
        {
            VolatileDataset store = new VolatileDataset();
            Mock <IErrorsReportingContext> context = new Mock <IErrorsReportingContext>();
            Mock <GenericRepository <ErrorReportApplication> > mockApplicationRepository = new Mock <GenericRepository <ErrorReportApplication> >(context.Object);

            mockApplicationRepository.Setup(r => r.Insert(It.IsAny <ErrorReportApplication>()))
            .Callback <ErrorReportApplication>((app) =>
            {
                app.Id         = 5;
                app.RowVersion = new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 };
                store.Applications.Add(app);
            }).Verifiable();
            this.repository = mockApplicationRepository.Object;

            ErrorReportApplication application = new ErrorReportApplication
            {
                Name         = "Application 3",
                Version      = "1.0.0.0",
                FirstRunDate = new DateTime(2017, 1, 1)
            };

            this.repository.Insert(application);

            mockApplicationRepository.Verify(r => r.Insert(It.IsAny <ErrorReportApplication>()), Times.Once());
            Assert.AreEqual(5, store.Applications.Count);
            Assert.AreEqual(5, store.Applications.Last().Id);
        }
Пример #2
0
        public async Task CreateApplicationAsync()
        {
            VolatileErrorsReportingDataset store = new VolatileErrorsReportingDataset();

            Mock <IErrorsReportingService> mockService = new Mock <IErrorsReportingService>();

            mockService.Setup(s => s.CreateApplicationAsync(It.IsAny <string>(), It.IsAny <string>()))
            .Callback <string, string>((name, version) =>
            {
                store.Applications.Add(new ErrorReportApplication
                {
                    Id           = store.Applications.Count + 1,
                    Name         = name,
                    Version      = version,
                    FirstRunDate = DateTime.Now,
                    RowVersion   = new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 },
                    Exceptions   = new List <ErrorReportException>()
                });
            })
            .Returns <string, string>((name, version) => Task.FromResult <ErrorReportApplication>(store.Applications.Last()));

            IErrorsReportingService service     = mockService.Object;
            ErrorReportApplication  application = await service.CreateApplicationAsync("TestApplication", "1.0.0.0");

            Assert.AreEqual(5, store.Applications.Count);
            Assert.AreEqual(store.Applications.Last().Id, application.Id);
            Assert.AreEqual(store.Applications.Last().FirstRunDate, application.FirstRunDate);
            Assert.AreEqual(store.Applications.Last().Name, application.Name);
        }
        public ErrorReportApplication GetApplication(string name, string version)
        {
            ErrorReportApplication application = this.applicationsRepository
                                                 .Get(el => el.Name == name && el.Version == version)
                                                 .SingleOrDefault();

            return(application);
        }
        public void Db_Repository_GetApplicationById()
        {
            ErrorReportApplication application = this.repository.GetByID(this.addApplication.Id);

            Assert.IsNotNull(application);
            Assert.AreEqual(this.addApplication.Name, application.Name);
            Assert.AreEqual(this.addApplication.FirstRunDate, application.FirstRunDate);
            Assert.AreEqual(this.addApplication.RowVersion, application.RowVersion);
        }
Пример #5
0
        public async Task Db_ErrorsReportingService_GetApplicationAsync()
        {
            using (IUnityContainer childContainer = this.container.CreateChildContainer())
            {
                IErrorsReportingService service     = childContainer.Resolve <IErrorsReportingService>();
                ErrorReportApplication  application = await service.GetApplicationAsync("TestApplicationAlreadyExisting", "a.a.a.a");

                Assert.Greater(application.Id, 0);
                Assert.AreEqual(new DateTime(2000, 1, 1), application.FirstRunDate);
            }
        }
Пример #6
0
        public async Task Db_ErrorsReportingService_CreateApplicationAsync()
        {
            using (IUnityContainer childContainer = this.container.CreateChildContainer())
            {
                IErrorsReportingService service = childContainer.Resolve <IErrorsReportingService>();
                ErrorReportApplication  result  = await service.CreateApplicationAsync("TestApplication", "a.a.a.a");

                Assert.IsNotNull(result);
                Assert.Greater(result.Id, 0);

                this.dataSet.ApplicationsIds.Add(result.Id);
            }
        }
Пример #7
0
        public async Task Db_ErrorsReportingService_GetApplicationAsync()
        {
            using (ThreadScopedLifestyle.BeginScope(container))
            {
                ErrorsReportingService service = container.GetInstance <ErrorsReportingService>();

                ErrorReportApplication application = await service.GetApplicationAsync("TestApplicationAlreadyExisting", "a.a.a.a");

                Assert.IsNotNull(application);
                Assert.Greater(application.Id, 0);
                Assert.AreEqual(new DateTime(2000, 1, 1), application.FirstRunDate);
            }
        }
Пример #8
0
        public void Db_ErrorsReportingService_GetApplicationAsync_NotExisting()
        {
            using (IUnityContainer childContainer = this.container.CreateChildContainer())
            {
                IErrorsReportingService service     = childContainer.Resolve <IErrorsReportingService>();
                ErrorReportApplication  application = null;
                Assert.That(async() =>
                {
                    application = await service.GetApplicationAsync("TestApplicationAlreadyExisting", "z.z.z.z");
                }, Throws.Nothing);

                Assert.IsNull(application);
            }
        }
Пример #9
0
        public async Task Db_ErrorsReportingService_CreateApplicationAsync()
        {
            using (ThreadScopedLifestyle.BeginScope(container))
            {
                ErrorsReportingService service = container.GetInstance <ErrorsReportingService>();

                ErrorReportApplication result = await service.CreateApplicationAsync("TestApplicationAsync", "a.a.a.a");

                Assert.IsNotNull(result);
                Assert.Greater(result.Id, 0);

                this.dataSet.ApplicationsIds.Add(result.Id);
            }
        }
        public void GetApplicationById_DoesntExist()
        {
            VolatileDataset store = new VolatileDataset();
            Mock <IErrorsReportingContext> context = new Mock <IErrorsReportingContext>();
            Mock <GenericRepository <ErrorReportApplication> > mockApplicationRepository = new Mock <GenericRepository <ErrorReportApplication> >(context.Object);

            mockApplicationRepository.Setup(r => r.GetByID(It.IsNotIn <int>(1, 2, 3, 4)))
            .Returns <ErrorReportApplication>(null);
            this.repository = mockApplicationRepository.Object;

            ErrorReportApplication application = this.repository.GetByID(10);

            Assert.AreEqual(null, application);
        }
Пример #11
0
        public async Task LogErrorAsync(Exception exception, AssemblyName assemblyName, string errorCode)
        {
            string applicationName    = assemblyName.Name;
            string applicationVersion = assemblyName.Version.ToString();

            ErrorReportApplication application = await this.reportingService.GetApplicationAsync(applicationName, applicationVersion);

            if (application == null)
            {
                application = await this.reportingService.CreateApplicationAsync(applicationName, applicationVersion);
            }

            await this.reportingService.LogExceptionAsync(application.Id, exception, errorCode);
        }
        public ErrorReportApplication CreateApplication(string name, string version)
        {
            ErrorReportApplication application = new ErrorReportApplication
            {
                Name         = name,
                Version      = version,
                FirstRunDate = DateTime.Now
            };

            this.applicationsRepository.Insert(application);
            int result = this.Save();

            return(result == 1 ? application : null);
        }
        public void Db_Repository_AddApplication()
        {
            this.addApplication = new ErrorReportApplication
            {
                Name         = "TestApplication",
                Version      = "1.0.0.0",
                FirstRunDate = DateTime.Now
            };

            repository.Insert(this.addApplication);
            int result = this.context.SaveChanges();

            Assert.AreEqual(1, result);
        }
Пример #14
0
        public async Task <ErrorReportApplication> CreateApplicationAsync(string name, string version)
        {
            ErrorReportApplication application = new ErrorReportApplication
            {
                Name         = name,
                Version      = version,
                FirstRunDate = DateTime.Now
            };

            this.applicationsRepository.Insert(application);
            SaveResult result = await base.SaveAsync(base.policy);

            return(result.AlteredObjectsCount == 1 ? application : null);
        }
Пример #15
0
        public void Db_ErrorsReportingService_GetApplicationAsync_NotExisting()
        {
            using (ThreadScopedLifestyle.BeginScope(container))
            {
                ErrorsReportingService service = container.GetInstance <ErrorsReportingService>();

                ErrorReportApplication application = null;
                Assert.That(async() =>
                {
                    application = await service.GetApplicationAsync("TestApplicationAlreadyExisting", "z.z.z.z");
                }, Throws.Nothing);

                Assert.IsNull(application);
            }
        }
        public void GetApplication()
        {
            VolatileDataset store = new VolatileDataset();

            Mock <IErrorsReportingService> mockService = new Mock <IErrorsReportingService>();

            mockService.Setup(s => s.GetApplication(It.IsAny <string>(), It.IsAny <string>()))
            .Returns <string, string>((name, version) => store.Applications.Single(a => a.Name == name && a.Version == version));

            IErrorsReportingService service     = mockService.Object;
            ErrorReportApplication  application = service.GetApplication("TestApplicationAlreadyExisting", "1.0.0.0");

            Assert.AreEqual(1, application.Id);
            Assert.AreEqual(new DateTime(2000, 1, 1), application.FirstRunDate);
        }
        public void GetApplicationById()
        {
            VolatileDataset store = new VolatileDataset();
            Mock <IErrorsReportingContext> context = new Mock <IErrorsReportingContext>();
            Mock <GenericRepository <ErrorReportApplication> > mockApplicationRepository = new Mock <GenericRepository <ErrorReportApplication> >(context.Object);

            mockApplicationRepository.Setup(r => r.GetByID(It.IsInRange <int>(1, 4, Range.Inclusive)))
            .Returns <int>(id => store.Applications.Find(el => el.Id == id));
            this.repository = mockApplicationRepository.Object;

            ErrorReportApplication application       = this.repository.GetByID(1);
            ErrorReportApplication storedApplication = store.Applications.Single(el => el.Id == 1);

            Assert.AreEqual(application.Name, storedApplication.Name);
            Assert.AreEqual(application.Version, storedApplication.Version);
            Assert.AreEqual(application.FirstRunDate, storedApplication.FirstRunDate);
        }
        public void Db_Repository_DeleteById()
        {
            ErrorReportApplication application = new ErrorReportApplication
            {
                Name         = "TestApplicationForDeletion",
                Version      = "1.0.0.0",
                FirstRunDate = DateTime.Now
            };

            this.repository.Insert(application);
            this.context.SaveChanges();

            this.repository.Delete(application.Id);
            this.context.SaveChanges();

            ErrorReportApplication deletedApplication = this.repository.GetByID(application.Id);

            Assert.IsNull(deletedApplication);
        }
        public void DeleteApplication()
        {
            VolatileDataset store = new VolatileDataset();
            Mock <IErrorsReportingContext> context = new Mock <IErrorsReportingContext>();
            Mock <GenericRepository <ErrorReportApplication> > mockApplicationRepository = new Mock <GenericRepository <ErrorReportApplication> >(context.Object);

            mockApplicationRepository.Setup(r => r.Delete(It.IsAny <ErrorReportApplication>()))
            .Callback((ErrorReportApplication app) =>
            {
                store.Applications.Remove(app);
            }).Verifiable();
            this.repository = mockApplicationRepository.Object;

            ErrorReportApplication application = store.Applications.ElementAt(3);

            this.repository.Delete(application);

            mockApplicationRepository.Verify(r => r.Delete(It.IsAny <ErrorReportApplication>()), Times.Once());
            Assert.AreEqual(3, store.Applications.Count);
        }
        public void GetApplication_NotExisting()
        {
            VolatileDataset store = new VolatileDataset();

            Mock <IErrorsReportingService> mockService = new Mock <IErrorsReportingService>();

            mockService.Setup(s => s.GetApplication(It.IsNotIn <string>(store.Applications.Select(a => a.Name)), It.IsAny <string>()))
            .Returns <string, string>(null);

            IErrorsReportingService service = mockService.Object;

            ErrorReportApplication application = null;

            Assert.That(() =>
            {
                application = service.GetApplication("TestApplicationNotExisting", "1.0.0.0");
            }, Throws.Nothing);

            Assert.IsNull(application);
        }
Пример #21
0
        public void GetApplicationAsync_NotExisting()
        {
            VolatileErrorsReportingDataset store = new VolatileErrorsReportingDataset();

            Mock <IErrorsReportingService> mockService = new Mock <IErrorsReportingService>();

            mockService.Setup(s => s.GetApplicationAsync(It.IsNotIn <string>(store.Applications.Select(a => a.Name)), It.IsAny <string>()))
            .Returns <string, string>((name, version) =>
                                      Task.FromResult <ErrorReportApplication>(null));

            IErrorsReportingService service = mockService.Object;

            ErrorReportApplication application = null;

            Assert.That(async() =>
            {
                application = await service.GetApplicationAsync("TestApplicationNotExisting", "1.0.0.0");
            }, Throws.Nothing);

            Assert.IsNull(application);
        }
        public void UpdateApplication()
        {
            VolatileDataset store = new VolatileDataset();
            Mock <IErrorsReportingContext> context = new Mock <IErrorsReportingContext>();
            Mock <GenericRepository <ErrorReportApplication> > mockApplicationRepository = new Mock <GenericRepository <ErrorReportApplication> >(context.Object);

            mockApplicationRepository.Setup(r => r.Update(It.IsAny <ErrorReportApplication>()))
            .Callback <ErrorReportApplication>((app) =>
            {
                var index = store.Applications.FindIndex(el => el.Id == app.Id);
                store.Applications[index] = app;
            }).Verifiable();
            this.repository = mockApplicationRepository.Object;

            ErrorReportApplication application = store.Applications.ElementAt(2);
            string newName    = application.Name = "Application 4";
            string newVersion = application.Version = "1.0.0.0";

            this.repository.Update(application);

            mockApplicationRepository.Verify(r => r.Update(It.IsAny <ErrorReportApplication>()), Times.Once());
            Assert.AreEqual(newName, store.Applications.ElementAt(2).Name);
            Assert.AreEqual(newVersion, store.Applications.ElementAt(2).Version);
        }
        public void Db_Repository_GetApplicationById_DoesntExist()
        {
            ErrorReportApplication application = this.repository.GetByID(0);

            Assert.AreEqual(null, application);
        }