/* * This file is part of the OpenSCADA project * Copyright (C) 2006-2010 TH4 SYSTEMS GmbH (http://th4-systems.com) * * OpenSCADA is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenSCADA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenSCADA. If not, see * <http://opensource.org/licenses/lgpl-3.0.html> for a copy of the LGPLv3 License. */ package org.openscada.ca.ui.importer.data; import java.io.File; import java.io.IOException; import java.util.Collection; import java.util.HashMap; import java.util.Map; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.eclipse.core.runtime.NullProgressMonitor; import org.junit.Before; import org.junit.Test; import org.openscada.ca.DiffEntry; import org.openscada.ca.ui.util.DiffController; public class MergeTest { private DiffController mergeController; @Before public void setup () { this.mergeController = new DiffController (); } @Test public void test2 () throws JsonParseException, JsonMappingException, IOException { final ObjectMapper mapper = new ObjectMapper (); final Object result = mapper.readValue ( new File ( "/home/jens/workspace_openscada_015/udtconv1/script/dave/data.json" ), HashMap.class ); System.out.println ( result ); } @Test public void test1 () { // local data final Map<String, Map<String, Map<String, String>>> localData = new HashMap<String, Map<String, Map<String, String>>> (); final HashMap<String, Map<String, String>> factoryA = new HashMap<String, Map<String, String>> (); final Map<String, String> cfgA1 = new HashMap<String, String> (); cfgA1.put ( "foo", "bar" ); factoryA.put ( "cfg1", cfgA1 ); localData.put ( "factoryA", factoryA ); // remote data final Map<String, Map<String, Map<String, String>>> remoteData = new HashMap<String, Map<String, Map<String, String>>> (); final HashMap<String, Map<String, String>> factoryB = new HashMap<String, Map<String, String>> (); final Map<String, String> cfgB1 = new HashMap<String, String> (); cfgB1.put ( "foo", "bar" ); factoryB.put ( "cfg1", cfgB1 ); remoteData.put ( "factoryB", factoryB ); this.mergeController.setLocalData ( localData ); this.mergeController.setRemoteData ( remoteData ); final Collection<DiffEntry> result = this.mergeController.merge ( new NullProgressMonitor () ); System.out.println ( result ); } }