A class that provides an implementation of T:Stumps.Server.Data.IConfigurationDataAccess that uses a JSON file to configuration information.
Inheritance: IConfigurationDataAccess
        public void SaveConfiguration_WithValidEntity_CreateExpectedFile()
        {
            var tempFile = Path.GetTempFileName();

            try
            {
                var dal = new ConfigurationDataAccess(tempFile);
                var entity = new ConfigurationEntity
                {
                    DataCompatibilityVersion = 100,
                    StoragePath = "C:\\SomeValue\\",
                    WebApiPort = 8000
                };

                dal.SaveConfiguration(entity);

                var savedText = File.ReadAllText(tempFile);

                StringAssert.AreEqualIgnoringCase(TestData.SampleConfiguration, savedText);
            }
            finally
            {
                File.Delete(tempFile);
            }
        }
Esempio n. 2
0
        public void SaveConfiguration_WithValidEntity_CreateExpectedFile()
        {
            var tempFile = Path.GetTempFileName();

            try
            {
                var dal    = new ConfigurationDataAccess(tempFile);
                var entity = new ConfigurationEntity
                {
                    DataCompatibilityVersion = 100,
                    StoragePath = "C:\\SomeValue\\",
                    WebApiPort  = 8000
                };

                dal.SaveConfiguration(entity);

                var savedText = File.ReadAllText(tempFile);

                StringAssert.AreEqualIgnoringCase(TestData.SampleConfiguration, savedText);
            }
            finally
            {
                File.Delete(tempFile);
            }
        }
Esempio n. 3
0
        public static void Main(string[] args)
        {
            var isRunningAsConsole = IsApplicationRunningAsConsole(args);

            var writer = isRunningAsConsole
                              ? (IMessageWriter)new ConsoleWriter()
                              : (IMessageWriter)new EventLogWriter();

            if (IsApplicationAlreadyRunning())
            {
                writer.WriteError(StartupResources.ApplicationRunning);
                return;
            }

            var configurationFile = Path.Combine(
                DefaultConfigurationSettings.StoragePath, DefaultConfigurationSettings.ConfigurationFileName);

            if (args != null && args.Length > 0)
            {
                configurationFile = DetermineConfigurationFileFromArgs(args);
            }

            if (configurationFile == null)
            {

                writer.WriteError(StartupResources.InvalidArguments + string.Join(@" ", args));

                if (isRunningAsConsole)
                {
                    writer.Information(StartupResources.HelpInformation);
                }

                return;

            }

            var configurationDal = new ConfigurationDataAccess(configurationFile);
            var configuration = new StumpsConfiguration(configurationDal);
            configurationDal.EnsureConfigurationIsInitialized(configuration.SaveConfiguration);

            configuration.LoadConfiguration();

            var startup = isRunningAsConsole ? (IStartup)new ConsoleStartup() : (IStartup)new ServiceStartup();

            startup.Configuration = configuration;
            startup.MessageWriter = writer;

            startup.RunInstance();
        }
Esempio n. 4
0
        public static void Main()
        {
            var configurationFile = Path.Combine(
                DefaultConfigurationSettings.StoragePath, DefaultConfigurationSettings.ConfigurationFileName);

            var configurationDal = new ConfigurationDataAccess(configurationFile);
            var configuration = new StumpsConfiguration(configurationDal);
            configurationDal.EnsureConfigurationIsInitialized(configuration.SaveConfiguration);

            configuration.LoadConfiguration();

            var urlString = string.Format(CultureInfo.InvariantCulture, "http://localhost:{0}/", configuration.WebApiPort);

            Process.Start(urlString);
        }
        public void SaveConfiguration_WithNullValue_ThrowsException()
        {
            var tempFile = Path.GetTempFileName();

            try
            {
                var dal = new ConfigurationDataAccess(tempFile);

                Assert.That(
                    () => dal.SaveConfiguration(null),
                    Throws.Exception.TypeOf<ArgumentNullException>().With.Property("ParamName").EqualTo("value"));
            }
            finally
            {
                File.Delete(tempFile);
            }
        }
Esempio n. 6
0
        public void SaveConfiguration_WithNullValue_ThrowsException()
        {
            var tempFile = Path.GetTempFileName();

            try
            {
                var dal = new ConfigurationDataAccess(tempFile);

                Assert.That(
                    () => dal.SaveConfiguration(null),
                    Throws.Exception.TypeOf <ArgumentNullException>().With.Property("ParamName").EqualTo("value"));
            }
            finally
            {
                File.Delete(tempFile);
            }
        }
        public void LoadConfiguration_LoadsExpectedEntity()
        {
            var tempFile = Path.GetTempFileName();
            File.WriteAllText(tempFile, TestData.SampleConfiguration);

            try
            {
                var dal = new ConfigurationDataAccess(tempFile);
                var entity = dal.LoadConfiguration();

                Assert.IsNotNull(entity);

                Assert.AreEqual(100, entity.DataCompatibilityVersion);
                StringAssert.AreEqualIgnoringCase("C:\\SomeValue\\", entity.StoragePath);
                Assert.AreEqual(8000, entity.WebApiPort);

            }
            finally
            {
                File.Delete(tempFile);
            }
        }
Esempio n. 8
0
        public void LoadConfiguration_LoadsExpectedEntity()
        {
            var tempFile = Path.GetTempFileName();

            File.WriteAllText(tempFile, TestData.SampleConfiguration);

            try
            {
                var dal    = new ConfigurationDataAccess(tempFile);
                var entity = dal.LoadConfiguration();

                Assert.IsNotNull(entity);

                Assert.AreEqual(100, entity.DataCompatibilityVersion);
                StringAssert.AreEqualIgnoringCase("C:\\SomeValue\\", entity.StoragePath);
                Assert.AreEqual(8000, entity.WebApiPort);
            }
            finally
            {
                File.Delete(tempFile);
            }
        }