public void Should_map_sucessfully() { string hostname = "hostname"; var clientName = "someClient"; var freq = 100; var configMapper = new ConfigMapper(hostname, this.stop, this.dataClientFactory, this.graphiteClientFactory, this.log, configRepository); var taskSets = new List<TaskSet>(); var taskSet = new TaskSet { Frequency = freq, Tasks = new List<Task>() }; string name = new Guid().ToString(); Job job = new WmiClient(); job.ClientName = clientName; configRepository.Expect(y => y.GetJob(name)).Return(job); configRepository.Expect(y => y.GetClient(clientName)).Return(new GraphiteTcpClient()); taskSet.Tasks.Add(new Task() { JobName = name }); taskSets.Add(taskSet); //Test var taskList = configMapper.Map(taskSets); //Assert Assert.That(taskList.Count, Is.EqualTo(1)); Assert.That(taskList[0].Frequency, Is.EqualTo(freq)); Assert.That(taskList[0].Tasks.Count, Is.EqualTo(1)); Assert.That(taskList[0].Tasks[0].GetType(), Is.EqualTo(typeof(RunableRunTask))); configRepository.VerifyAllExpectations(); }
public void Should_throw_exception_if_graphite_client_is_unknown() { string clientName = "notKnown"; string jobName = "someJob"; var job = new WmiClient(); var msg = "some exception message"; job.ClientName = clientName; job.Name = jobName; configRepository.Expect(x => x.GetClient(clientName)).Throw(new ClientNotFoundException(msg)); configRepository.Expect(x => x.GetJob(jobName)).Return(job); string hostname = "hostname"; var configMapper = new ConfigMapper(hostname, this.stop, this.dataClientFactory, this.graphiteClientFactory, this.log, configRepository); var taskSets = new List<TaskSet>(); var taskSet = new TaskSet { Frequency = 100, Tasks = new List<Task>() }; var t = new Task { JobName = jobName }; taskSet.Tasks.Add(t); taskSets.Add(taskSet); //Test var ex = Assert.Throws<ClientNotFoundException>(() => configMapper.Map(taskSets)); //Assert Assert.That(ex.Message, Is.EqualTo(msg)); }
private TaskSet CreateTaskSetItem(TaskDetails taskProperties) { var tasks = new List<Task> { CreateTask(taskProperties) }; var taskSetItem = new TaskSet { Frequency = taskProperties.Frequency, Tasks = tasks }; return taskSetItem; }
/* This needs to be better should should be able to not have to loop so much. */ private static bool RemoveJob(string jobName, TaskSet ts) { bool found = false; Task foundTask = null; foreach (var t in ts.Tasks) { if (t.JobName == jobName) { found = true; foundTask = t; } } if (found) { ts.Tasks.Remove(foundTask); } return found; }
private static bool AddTaskIfFrequencyIsTheSame(TaskDetails taskProperties, TaskSet t) { bool added = false; if (t.Frequency == taskProperties.Frequency) { t.Tasks.Add(CreateTask(taskProperties)); added = true; } return added; }
public void AddRoleFrequency(int frequency, string roleName) { var role = this.GetRole(roleName); var ts = new TaskSet { Frequency = frequency, Tasks = new List<Task>() }; role.TaskSet.Add(ts); }
private Template CreateSingleRoleAndJob(string jobName, int frequency, string roleName) { var ts = new TaskSet { Frequency = frequency, Tasks = new List<Task>() }; var task = new Task { JobName = jobName }; ts.Tasks.Add(task); var template = new Template(); var wi = new WorkItems { RoleName = roleName, TaskSet = new List<TaskSet>() }; wi.TaskSet.Add(ts); var wilist = new List<WorkItems> { wi }; template.WorkItems = wilist; this.config.Templates.Add(template); return template; }
private Template CreateMultipoleRolesAndJobs(string jobName, string jobName1, int frequency, int frequency1, string roleName) { var ts1 = new TaskSet { Frequency = frequency, Tasks = new List<Task>() }; var ts2 = new TaskSet { Frequency = frequency1, Tasks = new List<Task>() }; var task = new Task { JobName = jobName }; ts1.Tasks.Add(task); var task1 = new Task { JobName = jobName1 }; ts2.Tasks.Add(task1); var template = new Template(); var wi = new WorkItems { RoleName = roleName, TaskSet = new List<TaskSet>() }; wi.TaskSet.Add(ts1); wi.TaskSet.Add(ts2); var wilist = new List<WorkItems> { wi }; template.WorkItems = wilist; this.config.Templates.Add(template); return template; }
public void Should_generate_test_config_file() { try { var log = LogManager.GetLogger("log"); var encryption = new Encryption(); var simpleCs = encryption.Encrypt("some Cs"); log4net.Config.XmlConfigurator.Configure(); var job1 = new WmiClient { ClientName = "GraphiteTcpClient", Name = "GetNumberOfTransactionsASecond", Hostname = simpleCs, Sql = "some sql" }; var job2 = new WmiClient { ClientName = "GraphiteUdpClient", Name = "GetNumberOfDeliveryies", Hostname = simpleCs, Sql = "some sql1" }; var client1 = new GraphiteTcpClient { ClientName = "GraphiteTcpClient", Port = 2003, Hostname = "metrics.london.ttldev.local" }; var client2 = new GraphiteUdpClient { ClientName = "GraphiteUdpClient", Port = 2003, Hostname = "metrics.london.ttldev.local" }; var config = new SqlToGraphiteConfig(new AssemblyResolver(new DirectoryImpl(), log), log); config.Jobs.Add(job1); config.Jobs.Add(job2); var host1 = new Host { Name = "TTL001121" }; var host2 = new Host { Name = "Server1" }; var role1 = new Role { Name = "ProductionTests" }; var role2 = new Role { Name = "default" }; var role3 = new Role { Name = "SqlTests" }; host1.Roles.Add(role1); host1.Roles.Add(role2); host2.Roles.Add(role2); host2.Roles.Add(role3); config.Hosts.Add(host1); config.Hosts.Add(host2); var template = new Template(); var wi = new WorkItems { RoleName = role1.Name, TaskSet = new List<TaskSet>() }; var taskSet = new TaskSet { Frequency = 1000 }; taskSet.Tasks.Add(new Task { JobName = job1.Name }); wi.TaskSet.Add(taskSet); template.WorkItems.Add(wi); var wi1 = new WorkItems { RoleName = role2.Name, TaskSet = new List<TaskSet>() }; var taskSet1 = new TaskSet { Frequency = 2000 }; taskSet1.Tasks.Add(new Task { JobName = job2.Name }); wi1.TaskSet.Add(taskSet1); template.WorkItems.Add(wi1); var wi2 = new WorkItems { RoleName = role3.Name, TaskSet = new List<TaskSet>() }; var taskSet2 = new TaskSet { Frequency = 3000 }; wi2.TaskSet.Add(taskSet2); template.WorkItems.Add(wi2); config.Templates.Add(template); config.Clients = new ListOfUniqueType<Client> { client1, client2 }; //var genericSerializer = new GenericSerializer(Global.GetNameSpace()); //string xml = genericSerializer.Serialize(config); //Console.WriteLine(xml); //var sqlToGraphiteConfig = genericSerializer.Deserialize<SqlToGraphiteConfig>(xml); //foreach (var job in sqlToGraphiteConfig.Jobs) //{ //Console.WriteLine(job.Type); //} } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void Should_not_merge_taskLists_from_templates_with_the_same_freq() { var data = new List<WorkItems>(); var workItem1 = new WorkItems { RoleName = "default", TaskSet = new List<TaskSet>() }; var ts1 = new TaskSet { Frequency = 123, Tasks = new List<Task> { new Task() { JobName = "a" } } }; workItem1.TaskSet.Add(ts1); var workItem2 = new WorkItems { RoleName = "webserver", TaskSet = new List<TaskSet>() }; var ts2 = new TaskSet { Frequency = 123, Tasks = new List<Task> { new Task() { JobName = "b" } } }; workItem2.TaskSet.Add(ts2); data.Add(workItem1); data.Add(workItem2); var templates = new Templates1(data); var roles = new List<string> { "webserver", "default" }; //Test var result = templates.GetTaskSetList(roles); //Assert Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result[0].Frequency, Is.EqualTo(123)); Assert.That(result[0].Tasks.Count, Is.EqualTo(1)); Assert.That(result[0].Tasks[0].JobName, Is.EqualTo("a")); Assert.That(result[1].Frequency, Is.EqualTo(123)); Assert.That(result[1].Tasks.Count, Is.EqualTo(1)); Assert.That(result[1].Tasks[0].JobName, Is.EqualTo("b")); }
private static WorkItems CreateWorkItems(string jobName, string roleName, int freq) { var wi = new WorkItems { RoleName = roleName }; var ts = new TaskSet { Frequency = freq }; var task = new Task { JobName = jobName }; ts.Tasks.Add(task); wi.TaskSet.Add(ts); return wi; }