IUpdatePackage IUpdatePackageFactory.Create(ServerSettings serverSettings)
        {
            IUpdatePackageAccess updatePackageAccess = null;

            switch (serverSettings.Type)
            {
                case GetDataMethod.LocalFile:
                    updatePackageAccess = _updatePackageAccessFactory.CreateLocalFileAccess(serverSettings.Path);
                    break;

                case GetDataMethod.UncPath:
                    updatePackageAccess = _updatePackageAccessFactory.CreateUncPathAccess(serverSettings.Path);
                    break;

                case GetDataMethod.HttpDownload:
                    ProxySettings proxySettings = CreateProxySettings(serverSettings);
                    updatePackageAccess = _updatePackageAccessFactory.CreateHttpDownloadAccess(serverSettings.Path, _htmlGetter, proxySettings);
                    break;

                default:
                    throw new NotImplementedException($"Der serverSettings-Typ {serverSettings.Type} ist bisher nicht implementiert!");
            }

            return new DefaultUpdatePackage(serverSettings.Path, serverSettings, updatePackageAccess);
        }
        public void TestCleanup()
        {
            _updatePackageFactory = null;

            _serverSettings = null;
            _updatePackageFactoryAccessMock = null;
        }
        public void TestInitialize()
        {
            TestCleanup();

            _serverSettings = new ServerSettings();
            _serverSettings.Type = GetDataMethod.LocalFile;
            _serverSettings.Path = "UpdatePackageFactoryTest_CreateDefaultCommand";

            _updatePackageFactoryAccessMock = new UpdatePackageAccessFactoryMock();
            _updatePackageFactoryAccessMock.CreateLocalFileAccess.Add(_serverSettings.Path, new LocalFileAccess(_serverSettings.Path));

            _htmlGetterMock = new Mock<IHtmlGetter>();

            _updatePackageFactory = new UpdatePackageFactory(_updatePackageFactoryAccessMock, _htmlGetterMock.Object);
        }
        private static ProxySettings CreateProxySettings(ServerSettings serverSettings)
        {
            ProxySettings proxySettings = null;
            if (serverSettings.CheckUrlProxySettings != null)
            {
                proxySettings = new ProxySettings();
                proxySettings.Address = serverSettings.CheckUrlProxySettings.Address;

                if (!String.IsNullOrEmpty(serverSettings.CheckUrlProxySettings.Password) && !String.IsNullOrEmpty(serverSettings.CheckUrlProxySettings.Username))
                {
                    proxySettings.Username = serverSettings.CheckUrlProxySettings.Username;
                    proxySettings.Password = serverSettings.CheckUrlProxySettings.Password;
                }
            }

            return proxySettings;
        }
        public void ConfigurationConverterTest_ConvertServers_LocalFile()
        {
            var localFile = new ServerSettings[]
            {
                new ServerSettings()
                {
                    DownloadOnly = false,
                    Path = _path,
                    SkipDatabaseUpdate = false,
                    Type = GetDataMethod.LocalFile
                }
            };

            var actual = _configurationConverter.ConvertServers(localFile).ToArray();
            Assert.IsNotNull(actual);
            Assert.AreEqual(1, actual.Length);
            Assert.AreEqual(1, (_updatePackageFactoryMock as UpdatePackageFactoryMock).CreateCalled);
        }
 IUpdatePackage IUpdatePackageFactory.Create(ServerSettings serverSettings)
 {
     ++CreateCalled;
     return Create;
 }
 public DefaultUpdatePackage(string packageName, ServerSettings settings, IUpdatePackageAccess access)
 {
     _packageName = packageName;
     _settings = settings;
     _access = access;
 }