package org.dcm4chee.wizard;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.dcm4che3.net.Device;
import org.dcm4chee.wizard.model.GenericConfigNodeModel;
import org.dcm4chee.xds2.conf.XCAInitiatingGWCfg;
import org.dcm4chee.xds2.conf.XdsRegistry;
import org.dcm4chee.xds2.conf.XdsRepository;
import org.dcm4chee.xds2.conf.XCAInitiatingGWCfg.GatewayReference;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
/*@RunWith(BlockJUnit4ClassRunner.class)*/
public class UnwrappingSerializationTest {
private static final String[] MIME_TYPES2 = new String[] { "application/xml", "application/dicom", "application/pdf", "text/plain",
"text/xml" };
private String[] AFFINITY_DOMAIN = { "1.2.3.4.5" };
private XdsRepository createRepo() throws Exception {
// create registry which will be referenced
Device regd = new Device("RegDevice");
Device srcd = new Device("source_device");
XdsRepository rep = new XdsRepository();
rep.setApplicationName("AppNNName");
rep.setRepositoryUID("1.2.3");
rep.setAcceptedMimeTypes(MIME_TYPES2);
rep.setSoapLogDir(null);
rep.setCheckMimetype(true);
rep.setAllowedCipherHostname("*");
rep.setLogFullMessageHosts(new String[] {});
rep.setRetrieveUrl("http://retrieve");
rep.setProvideUrl("http://provide");
// reference registry
Map<String, Device> deviceBySrcUid = new HashMap<String, Device>();
deviceBySrcUid.put("3.4.5", srcd);
rep.setSrcDevicebySrcIdMap(deviceBySrcUid);
XdsRepository repo = rep;
return repo;
}
private XCAInitiatingGWCfg createInitGw(){
XCAInitiatingGWCfg initGW = new XCAInitiatingGWCfg();
initGW.setApplicationName("appn");
initGW.setHomeCommunityID("1.2.3");
initGW.setSoapLogDir("/dir");
initGW.setLocalPIXConsumerApplication("pixapp");
initGW.setRemotePIXManagerApplication("pixmgrapp");
initGW.setAsync(false);
initGW.setAsyncHandler(true);
// registry
Device regd = new Device("registry_device_rgw");
initGW.setRegistry(regd);
// repos
Device repod1 = new Device("repo_device_1");
Device repod2 = new Device("repo_device_2");
Map<String, Device> repDevices = new HashMap<String, Device>();
repDevices.put("123", repod1);
repDevices.put("456", repod2);
initGW.setRepositoryDeviceByUidMap(repDevices);
Device rgwd2 = new Device("rgw_device_2");
GatewayReference gwr1 = new GatewayReference();
gwr1.setAffinityDomain("1.2.3.4.5");
gwr1.setRespondingGWdevice(repod1);
GatewayReference gwr2 = new GatewayReference();
gwr2.setAffinityDomain("10.20.30.40.50");
gwr2.setRespondingGWdevice(rgwd2);
Map<String, GatewayReference> gws = new HashMap<String, GatewayReference>();
gws.put("1001", gwr1);
gws.put("2002", gwr2);
initGW.setRespondingGWByHomeCommunityIdMap(gws);
return initGW;
}
private XdsRegistry createRegistry() {
XdsRegistry registry = new XdsRegistry();
registry.setApplicationName("appReg");
registry.setAffinityDomain(AFFINITY_DOMAIN);
registry.setAffinityDomainConfigDir("${jboss.server.config.dir}/affinitydomain");
registry.setAcceptedMimeTypes(MIME_TYPES2);
registry.setSoapLogDir(null);
registry.setCreateMissingPIDs(false);
registry.setCreateMissingCodes(false);
registry.setCheckAffinityDomain(true);
registry.setCheckMimetype(true);
registry.setRegisterUrl("http://localhost/registryregister");
registry.setQueryUrl("http://localhost/registryquery");
return registry;
}
@SuppressWarnings("unchecked")
@Test
public void testSerializeUnwrap() throws Exception {
XCAInitiatingGWCfg initgw = createInitGw();
GenericConfigNodeModel<XCAInitiatingGWCfg> nm = new GenericConfigNodeModel<XCAInitiatingGWCfg>(initgw, "xdsRespondingGateways", Map.class);
//System.out.println(nm.getObject());
nm.setObject("{\"1301\":{\"xdsAffinityDomain\":\"1.2.5\",\"xdsRespondingGateway\":\"repo_dDDD\"},\"2002\":{\"xdsAffinityDomain\":\"10.20.30.40.50\",\"xdsRespondingGateway\":\"rgw_device_2\"}}");
//System.out.println(nm.getModifiedConfigObj().getRespondingGWByHomeCommunityIdMap());
}
}