Пример #1
0
        public void TestAtKonfigurationerAddUpdatesKonfigurationer()
        {
            var fixture = new Fixture();

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "AntalBogføringslinjer", fixture.Create <int>() },
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            Assert.That(finansstyringKonfigurationRepository.AntalBogføringslinjer, Is.GreaterThan(0));

            var newValue           = finansstyringKonfigurationRepository.AntalBogføringslinjer + fixture.Create <int>();
            var newKonfigurationer = new Dictionary <string, object>
            {
                { "AntalBogføringslinjer", newValue }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(newKonfigurationer);

            Assert.That(finansstyringKonfigurationRepository.AntalBogføringslinjer, Is.EqualTo(newValue));
        }
Пример #2
0
        public void TestAtFinansstyringServiceUriKasterIntranetGuiRepositoryExceptionVedInvalidSettingValue()
        {
            var fixture = new Fixture();

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "FinansstyringServiceUri", fixture.Create <string>() }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            var exception = Assert.Throws <IntranetGuiRepositoryException>(() => finansstyringKonfigurationRepository.FinansstyringServiceUri.ToString());

            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.InvalidConfigurationSettingValue, "FinansstyringServiceUri")));
            Assert.That(exception.InnerException, Is.Not.Null);
        }
Пример #3
0
        public void TestAtKonfigurationerAddAddsKonfigurationer()
        {
            var fixture = new Fixture();

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "FinansstyringServiceUri", "http://www.google.dk" },
                { "LokalDataFil", Path.GetTempFileName() },
                { "SynkroniseringDataFil", Path.GetTempFileName() },
                { "AntalBogføringslinjer", fixture.Create <int>() },
                { "DageForNyheder", fixture.Create <int>() }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            Assert.That(finansstyringKonfigurationRepository.FinansstyringServiceUri, Is.Not.Null);
            Assert.That(finansstyringKonfigurationRepository.LokalDataFil, Is.Not.Null);
            Assert.That(finansstyringKonfigurationRepository.LokalDataFil, Is.Not.Empty);
            Assert.That(finansstyringKonfigurationRepository.SynkroniseringDataFil, Is.Not.Null);
            Assert.That(finansstyringKonfigurationRepository.SynkroniseringDataFil, Is.Not.Empty);
            Assert.That(finansstyringKonfigurationRepository.AntalBogføringslinjer, Is.GreaterThan(0));
            Assert.That(finansstyringKonfigurationRepository.DageForNyheder, Is.GreaterThan(0));
        }
Пример #4
0
        public void TestAtKonfigurationerAddKasterArgumentNullExceptionHvisKonfigurationerErNull()
        {
            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            Assert.Throws <ArgumentNullException>(() => finansstyringKonfigurationRepository.KonfigurationerAdd(null));
        }
Пример #5
0
        public void TestAtAntalBogføringslinjerKasterIntranetGuiRepositoryExceptionHvisSettingMangler()
        {
            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            var exception = Assert.Throws <IntranetGuiRepositoryException>(() => finansstyringKonfigurationRepository.AntalBogføringslinjer.ToString(Thread.CurrentThread.CurrentUICulture));

            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.MissingConfigurationSetting, "AntalBogføringslinjer")));
            Assert.That(exception.InnerException, Is.Null);
        }
Пример #6
0
        public void TestAtFinansstyringServiceUriKasterIntranetGuiRepositoryExceptionHvisSettingMangler()
        {
            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            var exception = Assert.Throws <IntranetGuiRepositoryException>(() => finansstyringKonfigurationRepository.FinansstyringServiceUri.ToString());

            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.MissingConfigurationSetting, "FinansstyringServiceUri")));
            Assert.That(exception.InnerException, Is.Null);
        }
Пример #7
0
        public void TestAtFinansstyringServiceUriReturnererKonfigurationValue()
        {
            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            const string uri             = "http://www.google.dk";
            var          konfigurationer = new Dictionary <string, object>
            {
                { "FinansstyringServiceUri", uri }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            var result = finansstyringKonfigurationRepository.FinansstyringServiceUri;

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(new Uri(uri)));
        }
Пример #8
0
        public void TestAtDageForNyhederReturnererKonfigurationValue()
        {
            var fixture = new Fixture();

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var dageForNyheder  = fixture.Create <int>();
            var konfigurationer = new Dictionary <string, object>
            {
                { "DageForNyheder", dageForNyheder }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            var result = finansstyringKonfigurationRepository.DageForNyheder;

            Assert.That(result, Is.EqualTo(dageForNyheder));
        }
Пример #9
0
        public void TestAtAntalBogføringslinjerReturnererKonfigurationValue()
        {
            var fixture = new Fixture();

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var antalBogføringslinjer = fixture.Create <int>();
            var konfigurationer       = new Dictionary <string, object>
            {
                { "AntalBogføringslinjer", antalBogføringslinjer }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            var result = finansstyringKonfigurationRepository.AntalBogføringslinjer;

            Assert.That(result, Is.EqualTo(antalBogføringslinjer));
        }
Пример #10
0
        public void TestAtSynkroniseringDataFilReturnererKonfigurationValue()
        {
            var tempFileName = Path.GetFileName(Path.GetTempFileName());

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "SynkroniseringDataFil", tempFileName }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            var result = finansstyringKonfigurationRepository.SynkroniseringDataFil;

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.Not.Empty);
            Assert.That(result, Is.EqualTo(tempFileName));
        }
Пример #11
0
        public void TestAtSynkroniseringDataFilReturnererFileNameUdenDirectoryName()
        {
            var tempFileName = Path.GetTempFileName();

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "SynkroniseringDataFil", tempFileName }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            var result = finansstyringKonfigurationRepository.SynkroniseringDataFil;

            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.Not.Empty);
            Assert.That(result.Contains(Path.DirectorySeparatorChar), Is.False);
        }
Пример #12
0
        public void TestAtSynkroniseringDataFilKasterIntranetGuiRepositoryExceptionVedFileNameErInvalid()
        {
            var rand         = new Random(DateTime.Now.Millisecond);
            var illegalChars = Path.GetInvalidFileNameChars();
            var tempFile     = new FileInfo(Path.GetTempFileName());

            char illegalChar;

            do
            {
                illegalChar = illegalChars[rand.Next(0, illegalChars.Length - 1)];
            } while (illegalChar == Path.DirectorySeparatorChar || illegalChar == Path.VolumeSeparatorChar);
            var invalidFileName = string.Format("{0}{1}{2}{3}{4}", tempFile.DirectoryName, Path.DirectorySeparatorChar, Path.GetFileNameWithoutExtension(tempFile.Name), Convert.ToString(illegalChar), Path.GetExtension(tempFile.Name));

            Debug.WriteLine(string.Format("invalidFileName={0}", invalidFileName));

            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "SynkroniseringDataFil", invalidFileName }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            var exception = Assert.Throws <IntranetGuiRepositoryException>(() => finansstyringKonfigurationRepository.SynkroniseringDataFil.Clone());

            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.InvalidConfigurationSettingValue, "SynkroniseringDataFil")));
            Assert.That(exception.InnerException, Is.Not.Null);
            Assert.That(exception.InnerException, Is.TypeOf <ArgumentException>());
        }
Пример #13
0
        public void TestAtSynkroniseringDataFilKasterIntranetGuiRepositoryExceptionVedInvalidSettingValue(string invalidValue)
        {
            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);

            var konfigurationer = new Dictionary <string, object>
            {
                { "SynkroniseringDataFil", invalidValue }
            };

            finansstyringKonfigurationRepository.KonfigurationerAdd(konfigurationer);

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            var exception = Assert.Throws <IntranetGuiRepositoryException>(() => finansstyringKonfigurationRepository.SynkroniseringDataFil.Clone());

            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
            Assert.That(exception, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Null);
            Assert.That(exception.Message, Is.Not.Empty);
            Assert.That(exception.Message, Is.EqualTo(Resource.GetExceptionMessage(ExceptionMessage.InvalidConfigurationSettingValue, "SynkroniseringDataFil")));
            Assert.That(exception.InnerException, Is.Null);
        }
Пример #14
0
        /// <summary>
        /// Starter baggrundstask, der kan loaded nyheder til finansstyring.
        /// </summary>
        /// <param name="taskInstance">Instans af baggrundstasken.</param>
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            lock (SyncRoot)
            {
                if (_isLoading)
                {
                    return;
                }
                _isLoading = true;
            }

            BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

            try
            {
                WindowsRuntimeResourceManager.PatchResourceManagers();

                ConfigurationProvider configurationProvider = new ConfigurationProvider();

                IDictionary <string, object> finansstyringConfiguration = configurationProvider.Settings
                                                                          .Where(m => FinansstyringKonfigurationRepository.Keys.Contains(m.Key))
                                                                          .ToDictionary(m => m.Key, m => m.Value);
                IFinansstyringKonfigurationRepository finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();
                finansstyringKonfigurationRepository.KonfigurationerAdd(finansstyringConfiguration);

                IEnumerable <INyhedModel> finansstyringsnyheder;
                try
                {
                    IFinansstyringRepository finansstyringRepository = new FinansstyringRepository(finansstyringKonfigurationRepository);
                    finansstyringsnyheder = await FinansstyringsnyhederGetAsync(finansstyringRepository);
                }
                catch (IntranetGuiOfflineRepositoryException)
                {
                    ILocaleDataStorage localeDataStorage = new LocaleDataStorage(finansstyringKonfigurationRepository.LokalDataFil, finansstyringKonfigurationRepository.SynkroniseringDataFil, FinansstyringRepositoryLocale.XmlSchema);
                    localeDataStorage.OnHasLocaleData      += LocaleDataStorageHelper.HasLocaleDataEventHandler;
                    localeDataStorage.OnCreateReaderStream += LocaleDataStorageHelper.CreateReaderStreamEventHandler;
                    localeDataStorage.OnCreateWriterStream += LocaleDataStorageHelper.CreateWriterStreamEventHandler;

                    IFinansstyringRepository finansstyringRepository = new FinansstyringRepositoryLocale(finansstyringKonfigurationRepository, localeDataStorage);

                    Task <IEnumerable <INyhedModel> > finansstyringsnyhederGetTask = FinansstyringsnyhederGetAsync(finansstyringRepository);
                    finansstyringsnyhederGetTask.Wait();
                    finansstyringsnyheder = finansstyringsnyhederGetTask.Result;
                }

                UpdateTile(finansstyringsnyheder);
            }
            catch (AggregateException aggregateException)
            {
                aggregateException.Handle(ex =>
                {
                    Logger.LogError(ex);
                    return(true);
                });
            }
            catch (Exception ex)
            {
                Logger.LogError(ex);
            }
            finally
            {
                lock (SyncRoot)
                {
                    _isLoading = false;
                }
                deferral.Complete();
            }
        }
Пример #15
0
        public void TestAtConstructorInitiererFinansstyringKonfigurationRepository()
        {
            var finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();

            Assert.That(finansstyringKonfigurationRepository, Is.Not.Null);
        }
Пример #16
0
        /// <summary>
        /// Sarter baggrundstask, der kan synkronisere finansstyringsdata til og fra det lokale datalager.
        /// </summary>
        /// <param name="taskInstance">Instans af baggrundstasken.</param>
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            lock (SyncRoot)
            {
                if (_isSynchronizing)
                {
                    return;
                }
                _isSynchronizing = true;
                _cancelRequested = false;
            }

            taskInstance.Canceled += CanceledEventHandler;

            BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

            try
            {
                WindowsRuntimeResourceManager.PatchResourceManagers();

                ConfigurationProvider configurationProvider = new ConfigurationProvider();

                IDictionary <string, object> finansstyringConfiguration = configurationProvider.Settings
                                                                          .Where(m => FinansstyringKonfigurationRepository.Keys.Contains(m.Key))
                                                                          .ToDictionary(m => m.Key, m => m.Value);
                IFinansstyringKonfigurationRepository finansstyringKonfigurationRepository = new FinansstyringKonfigurationRepository();
                finansstyringKonfigurationRepository.KonfigurationerAdd(finansstyringConfiguration);

                IFinansstyringRepository finansstyringRepository = new FinansstyringRepository(finansstyringKonfigurationRepository);

                ILocaleDataStorage localeDataStorage = new LocaleDataStorage(finansstyringKonfigurationRepository.LokalDataFil, finansstyringKonfigurationRepository.SynkroniseringDataFil, FinansstyringRepositoryLocale.XmlSchema);
                localeDataStorage.OnHasLocaleData      += LocaleDataStorageHelper.HasLocaleDataEventHandler;
                localeDataStorage.OnCreateReaderStream += LocaleDataStorageHelper.CreateReaderStreamEventHandler;
                localeDataStorage.OnCreateWriterStream += LocaleDataStorageHelper.CreateWriterStreamEventHandler;
                localeDataStorage.PrepareLocaleData    += PrepareLocaleDataEventHandler;

                await SyncData(finansstyringRepository, finansstyringKonfigurationRepository, localeDataStorage);
            }
            catch (AggregateException aggregateException)
            {
                aggregateException.Handle(ex =>
                {
                    if (ex is IntranetGuiOfflineRepositoryException)
                    {
                        return(true);
                    }
                    Logger.LogError(ex);
                    return(true);
                });
            }
            catch (Exception ex)
            {
                Logger.LogError(ex);
            }
            finally
            {
                lock (SyncRoot)
                {
                    _isSynchronizing = false;
                }
                deferral.Complete();
            }
        }