コード例 #1
0
ファイル: TFSProjectInfoTask.cs プロジェクト: ArildF/Smeedee
        protected virtual IRepository<ProjectInfoServer> Assemble(TaskConfiguration config)
        {
            var remainingField = (string) config.ReadEntryValue(TFSProjectInfoSettingsConstants.REMAINING_SETTING_NAME);
            var estimatedField = (string) config.ReadEntryValue(TFSProjectInfoSettingsConstants.ESTIMATED_SETTING_NAME);

            var configDictionary = new Dictionary<String, String>();
            configDictionary["tfswi-remaining-field"] = (remainingField != "")
                                                            ? remainingField
                                                            : "Work Remaining (Scrum v3)";
            configDictionary["tfswi-estimated-field"] = (estimatedField != "")
                                                            ? estimatedField
                                                            : "Estimated Effort (Scrum v3)";


            var serverUrl = (string)config.ReadEntryValue(TFSProjectInfoSettingsConstants.URL_SETTING_NAME);
            var projectName = (string)config.ReadEntryValue(TFSProjectInfoSettingsConstants.PROJECT_SETTING_NAME);
            var username = (string)config.ReadEntryValue(TFSProjectInfoSettingsConstants.USERNAME_SETTING_NAME);
            var password = (string)config.ReadEntryValue(TFSProjectInfoSettingsConstants.PASSWORD_SETTING_NAME);
			string domain = username.Contains('\\') ? username.Substring(0, username.IndexOf('\\')) : null;
			username = username.Contains('\\') ? username.Substring(username.IndexOf('\\') + 1) : username;
			var cred = string.IsNullOrEmpty(domain) ? new NetworkCredential(username, password) : new NetworkCredential(username, password, domain);


            return new ScrumForTFSRepository(serverUrl, projectName, configDictionary, cred);
        }
コード例 #2
0
ファイル: ScriptTask.cs プロジェクト: ArildF/Smeedee
        public ScriptTask(
            string safeDirectoryPathForScripts,
            TaskConfiguration taskConfiguration,
            IProcessService processService)
        {
            Guard.Requires<ArgumentNullException>(safeDirectoryPathForScripts != null);
            Guard.Requires<ArgumentException>(
                Directory.Exists(safeDirectoryPathForScripts) == true,
                "Path specified for SafeDirectoryPathForScripts does not exist");

            Guard.Requires<ArgumentNullException>(taskConfiguration != null);
            Guard.Requires<TaskConfigurationException>(taskConfiguration.EntryExists(ScriptName) == true);
            Guard.Requires<TaskConfigurationException>(
                taskConfiguration.ReadEntryValue(ScriptName) != null && 
                taskConfiguration.ReadEntryValue(ScriptName) != string.Empty);

            filePath = Path.Combine(safeDirectoryPathForScripts, taskConfiguration.ReadEntryValue(ScriptName).ToString());
            Guard.Requires<FileNotFoundException>(File.Exists(filePath) == true);

            Guard.Requires<ArgumentNullException>(processService != null);

            this.taskConfiguration = taskConfiguration;
            this.safeDirectoryPathForScripts = safeDirectoryPathForScripts;
            this.processService = processService;
        }
コード例 #3
0
 protected ChangesetHarvesterBase(IRepository<Changeset> changesetDbRepository,
                                  IPersistDomainModels<Changeset> databasePersister,
                                 TaskConfiguration config)
 {
     this.changesetDbRepository = changesetDbRepository;
     this.databasePersister = databasePersister;
     this.config = config;
 }
コード例 #4
0
            public void Assure_null_entries_are_ignored()
            {
                var config = new TaskConfiguration();
                config.Entries.Add(null);
                config.Entries.Add(new TaskConfigurationEntry(){Name = "testName", Value = "myValue",Type = typeof(string)});

                config.ReadEntryValue("testName").ShouldBe("myValue");
            }
コード例 #5
0
ファイル: TeamCityCITask.cs プロジェクト: ArildF/Smeedee
        public TeamCityCiTask(IPersistDomainModels<CIServer> databasePersister, TaskConfiguration configuration) : base(databasePersister, configuration)
        {
            Guard.Requires<ArgumentNullException>(databasePersister != null);
            Guard.Requires<ArgumentNullException>(configuration != null);
            Guard.Requires<TaskConfigurationException>(configuration.Entries.Count() >= 3);

            _configuration = configuration;
            Interval = TimeSpan.FromMilliseconds(_configuration.DispatchInterval);
        }
コード例 #6
0
ファイル: TFSProjectInfoTask.cs プロジェクト: ArildF/Smeedee
        public TFSProjectInfoTask(IPersistDomainModels<ProjectInfoServer> databasePersister,
                                  TaskConfiguration config)
        {
            Guard.Requires<ArgumentNullException>(databasePersister != null);
            Guard.Requires<ArgumentNullException>(config != null);
            Guard.Requires<TaskConfigurationException>(config.Entries.Count() >= 5);

            this.databasePersister = databasePersister;
            this.config = config;
            Interval = TimeSpan.FromMilliseconds(config.DispatchInterval);
        }
コード例 #7
0
        public SVNChangesetHarvesterTask(IRepository<Changeset> changesetDbRepository,
                                         IPersistDomainModels<Changeset> databasePersister,
                                         TaskConfiguration config)
            : base(changesetDbRepository, databasePersister, config)
        {
            Guard.Requires<ArgumentNullException>(changesetDbRepository != null);
            Guard.Requires<ArgumentNullException>(databasePersister != null);
            Guard.Requires<ArgumentNullException>(config != null);
            Guard.Requires<TaskConfigurationException>(config.Entries.Count() >= 4);

            Interval = TimeSpan.FromMilliseconds(config.DispatchInterval);
        }
コード例 #8
0
ファイル: CITaskBase.cs プロジェクト: ArildF/Smeedee
        protected CiTaskBase(IPersistDomainModels<CIServer> databasePersister,
                           TaskConfiguration configuration)
        {

            if (databasePersister == null)
                throw new ArgumentNullException("databasePersister");

            if (configuration == null)
                throw new ArgumentNullException("configuration");

            this.databasePersister = databasePersister;
            this._configuration = configuration;
        }
コード例 #9
0
            public void Assure_projectName_has_correct_prefix()
            {
                var config = new TaskConfiguration();
                config.Entries.Add(new TaskConfigurationEntry() { Name = TFSChangesetHarvesterTask.USERNAME_SETTING_NAME, Value = "test", PersistableType = "System.String"});
                config.Entries.Add(new TaskConfigurationEntry() { Name = TFSChangesetHarvesterTask.PASSWORD_SETTING_NAME, Value = "test", PersistableType = "System.String" });
                config.Entries.Add(new TaskConfigurationEntry() { Name = TFSChangesetHarvesterTask.SOURCECONTROL_SERVER_NAME, Value = "test", PersistableType = "System.String" });
                config.Entries.Add(new TaskConfigurationEntry() { Name = TFSChangesetHarvesterTask.URL_SETTING_NAME, Value = "test", PersistableType = "System.String" });
                config.Entries.Add(new TaskConfigurationEntry() { Name = TFSChangesetHarvesterTask.PROJECT_SETTING_NAME, Value = "test", PersistableType = "System.String" });

                var harvester = new TFSChangesetHarvesterTask(
                    new Mock<IRepository<Changeset>>().Object,
                    new Mock<IPersistDomainModels<Changeset>>().Object,
                    config);

            }
コード例 #10
0
        public TFSChangesetHarvesterTask(IRepository<Changeset> changesetDbRepository, IPersistDomainModels<Changeset> databasePersister, TaskConfiguration config) 
            : base(changesetDbRepository, databasePersister, config)
        {
            Guard.Requires<ArgumentNullException>(changesetDbRepository != null);
            Guard.Requires<ArgumentNullException>(databasePersister != null);
            Guard.Requires<ArgumentNullException>(config != null);
            Guard.Requires<TaskConfigurationException>(config.Entries.Count() >= 4);

            var projectSettingValue = config.ReadEntryValue(PROJECT_SETTING_NAME) as string;

            Guard.Requires<ArgumentException>(
                projectSettingValue != null &&
                projectSettingValue.StartsWith("$\\"),
                string.Format("The setting named '{0}' needs to start with $\\, but was '{1}'", PROJECT_SETTING_NAME, projectSettingValue ?? "null" ));

            Interval = TimeSpan.FromMilliseconds(config.DispatchInterval);
        }
コード例 #11
0
ファイル: Scheduler.cs プロジェクト: ArildF/Smeedee
 private void AddNewTask(TaskConfiguration config)
 {
     try
     {
         TaskMetaDatas.Add(new TaskMetaData
         {
             Task = CreateTask(taskNameToTypeMappings[config.TaskName], config),
             InstanceName = config.Name,
             LastDispatch = DateTime.MinValue,
             IsRunning = false
         });
     }
     catch (Exception e)
     {
         WriteErrorToLog(e);
     }  
 }
コード例 #12
0
ファイル: Scheduler.cs プロジェクト: ArildF/Smeedee
 private TaskBase CreateTask(Type type, TaskConfiguration configuration)
 {
     iocContainer.BindTo<TaskBase>(type);
     iocContainer.BindToConstant(configuration);
     
     return iocContainer.Get<TaskBase>();
 }
コード例 #13
0
ファイル: Scheduler.cs プロジェクト: ArildF/Smeedee
 private void UpdateExistingTaskMetaData(TaskConfiguration config)
 {
     try
     {
         var taskMetaData = TaskMetaDatas.Single(t => t.InstanceName == config.Name);
         taskMetaData.Task = CreateTask(taskNameToTypeMappings[config.TaskName], config);
     }
     catch (Exception e)
     {
         WriteErrorToLog(e);
     }
 }
コード例 #14
0
 protected override IRepository<ProjectInfoServer> Assemble(TaskConfiguration config)
 {
     return repositoryFactoryMock.Assemble(config);
 }
コード例 #15
0
ファイル: CITaskBaseSpecs.cs プロジェクト: ArildF/Smeedee
 public MockCiTask(IPersistDomainModels<CIServer> databasePersister, TaskConfiguration config) : base(databasePersister, config)
 {
     _config = config;
 }
コード例 #16
0
ファイル: ScriptTask.cs プロジェクト: ArildF/Smeedee
 public ScriptTask(
     TaskConfiguration taskConfiguration) :
     this(DefaultSafeDirectoryPathForScripts, taskConfiguration, new ProcessService())
 {
     Interval = new TimeSpan(0,5,0);   
 }
コード例 #17
0
 public MockTFSProjectInfoTask(IAssembleRepositoryForTasks<ProjectInfoServer> repositoryFactoryMock, IPersistDomainModels<ProjectInfoServer> databasePersister, TaskConfiguration config) : base(databasePersister, config)
 {
     this.repositoryFactoryMock = repositoryFactoryMock;
 }
コード例 #18
0
ファイル: Scheduler.cs プロジェクト: ArildF/Smeedee
 private bool TaskCanBeCreated(TaskConfiguration configuration)
 {
     return taskNameToTypeMappings.ContainsKey(configuration.TaskName);
 }
コード例 #19
0
 public MockHarvesterTask(IRepository<Changeset> changesetDbRepository,
                     IPersistDomainModels<Changeset> databasePersister,
                     IRepository<Changeset> changesetRepositoryMock, 
                     TaskConfiguration config)
     : base(changesetDbRepository, databasePersister, config)
 {
     this.changesetRepositoryMock = changesetRepositoryMock;
 }
コード例 #20
0
ファイル: Scheduler.cs プロジェクト: ArildF/Smeedee
 private bool TaskAlreadyExists(TaskConfiguration config)
 {
     return TaskMetaDatas.Select(t => t.InstanceName).Contains(config.Name);
 }