/*
* #%L
* Wildfly Camel :: Testsuite
* %%
* Copyright (C) 2013 - 2014 RedHat
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.wildfly.camel.test.catalog;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.egit.github.core.Issue;
import org.eclipse.egit.github.core.Label;
import org.eclipse.egit.github.core.Milestone;
import org.eclipse.egit.github.core.client.GitHubClient;
import org.eclipse.egit.github.core.service.IssueService;
import org.eclipse.egit.github.core.service.MilestoneService;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.wildfly.camel.catalog.CatalogCreator;
import org.wildfly.camel.catalog.CatalogCreator.RoadMap;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public final class UndecidedComponentsTest {
private static final String MILESTONE = "4.8.0";
private static final Label LABEL = new Label().setName("feature");
private static final Path auxfile = CatalogCreator.basedir().resolve("target/issues.txt");
@Test
public void createIssuesStepA() throws Exception {
List<String> collection = new ArrayList<>();
for (RoadMap rm : CatalogCreator.ROAD_MAPS.values()) {
String prefix = null;
File file = rm.getOutpath().toFile();
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line = br.readLine();
while (line != null) {
if (line.length() > 0 && !line.startsWith("#")) {
if (line.equals("[undecided]")) {
prefix = rm.getKind() + " ";
} else if (line.startsWith("[")) {
prefix = null;
} else if (prefix != null) {
collection.add(prefix + line);
}
}
line = br.readLine();
}
}
}
try (PrintWriter pw = new PrintWriter(auxfile.toFile())) {
for (String entry : collection) {
pw.println(entry);
}
}
}
@Test
public void createIssuesStepB() throws Exception {
String accessToken = System.getenv("GitHubAccessToken");
Assume.assumeNotNull("GitHubAccessToken not null", accessToken);
GitHubClient client = new GitHubClient();
client.setOAuth2Token(accessToken);
String githubUser = "wildfly-extras";
String githubRepo = "wildfly-camel";
Milestone milestone = null;
MilestoneService milestoneService = new MilestoneService(client);
for (Milestone aux : milestoneService.getMilestones(githubUser, githubRepo, IssueService.STATE_OPEN)) {
if (aux.getTitle().equals(MILESTONE)) {
milestone = aux;
break;
}
}
Assert.assertNotNull("Milestone not null", milestone);
IssueService issueService = new IssueService(client);
try (BufferedReader br = new BufferedReader(new FileReader(auxfile.toFile()))) {
String line = br.readLine();
while (line != null) {
String title = "Add support for " + line;
System.out.println(title);
Issue issue = new Issue();
issue.setTitle(title);
issue.setLabels(Collections.singletonList(LABEL));
issue.setMilestone(milestone);
issueService.createIssue(githubUser, githubRepo, issue);
line = br.readLine();
Thread.sleep(3 * 1000);
}
}
}
}