/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.difftests;
import com.emc.apidocs.differencing.DifferenceEngine;
import com.emc.apidocs.generating.ApiReferenceTocOrganizer;
import com.emc.apidocs.model.ApiDifferences;
import com.emc.apidocs.model.ApiMethod;
import com.emc.apidocs.model.ApiService;
import com.emc.apidocs.model.ApiServiceChanges;
import com.emc.apidocs.tools.MetaData;
import java.io.File;
import java.util.List;
import java.util.Map;
public class DifferenceEngineTest {
public static void main(String[] args) throws Exception {
List<ApiService> oldApi = MetaData.load(EncunciationReaderTests.class.getResourceAsStream("MetaData-1.1.json"));
List<ApiService> newApi = MetaData.load(EncunciationReaderTests.class.getResourceAsStream("MetaData-2.0.json"));
ApiDifferences differences = DifferenceEngine.calculateDifferences(oldApi, newApi);
ApiReferenceTocOrganizer organizer = new ApiReferenceTocOrganizer(new File(
"/Users/maddid/SourceCode/bourne/vipr-controller/tools/apidocs/src/content/reference/ApiReferenceGrouping.txt"));
Map<String, List<ApiService>> newServicesToc = organizer.organizeServices(differences.newServices);
Map<String, List<ApiService>> removedServicesToc = organizer.organizeServices(differences.removedServices);
System.out.println("\n===== NEW SERVICES:");
dumpServices(newServicesToc);
System.out.println("\n===== SERVICE CHANGES");
for (ApiServiceChanges changes : differences.modifiedServices) {
System.out.println(changes.service.getFqJavaClassName());
if (!changes.newMethods.isEmpty()) {
System.out.println("---- NEW METHODS");
for (ApiMethod apiMethod : changes.newMethods) {
System.out.println("-- " + apiMethod.httpMethod + " " + apiMethod.path);
}
}
if (!changes.removedMethods.isEmpty()) {
System.out.println("---- REMOVED METHODS");
for (ApiMethod apiMethod : changes.removedMethods) {
System.out.println("-- " + apiMethod.httpMethod + " " + apiMethod.path);
}
}
}
}
private static void dumpServices(Map<String, List<ApiService>> tocs) {
for (Map.Entry<String, List<ApiService>> toc : tocs.entrySet()) {
System.out.println(toc.getKey().toUpperCase());
for (ApiService newService : toc.getValue()) {
System.out.println(" - " + newService.getFqJavaClassName() + " " + newService.getTitle() + " " + newService.path);
}
}
}
}