package com.salesmanager.test.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Map;
import javax.inject.Inject;
import org.junit.Ignore;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.salesmanager.core.business.exception.ServiceException;
import com.salesmanager.core.business.services.reference.loader.IntegrationModulesLoader;
import com.salesmanager.core.business.services.system.ModuleConfigurationService;
import com.salesmanager.core.model.system.IntegrationModule;
import com.salesmanager.test.configuration.ConfigurationTest;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {ConfigurationTest.class})
@Ignore
public class ImportIntegrationModule {
@Inject
private IntegrationModulesLoader integrationModulesLoader;
@Inject
private ModuleConfigurationService moduleCongigurationService;
/**
* Import a specific integration module. Will delete and recreate the module
* if it already exists
* @throws Exception
*/
@Ignore
//@Test
public void importSpecificIntegrationModule() throws Exception {
ObjectMapper mapper = new ObjectMapper();
File file = new File(" /Users/carlsamson/Documents/dev/workspaces/shopizer-master/shopizer/sm-core/src/main/resources/reference/integrationmodules.json");
InputStream in = null;
try {
in = new FileInputStream(file);
@SuppressWarnings("rawtypes")
Map[] objects = mapper.readValue(in, Map[].class);
IntegrationModule module = null;
//get the module to be loaded
for(int i = 0; i < objects.length; i++) {
@SuppressWarnings("rawtypes")
Map o = objects[i];
//load that specific module
if(o.get("code").equals("beanstream")) {
//get module object
module = integrationModulesLoader.loadModule(o);
break;
}
}
if(module!=null) {
IntegrationModule m = moduleCongigurationService.getByCode(module.getCode());
if(m!=null) {
moduleCongigurationService.delete(m);
}
moduleCongigurationService.create(module);
}
} catch (Exception e) {
throw new ServiceException(e);
} finally {
if(in !=null) {
try {
in.close();
} catch(Exception ignore) {}
}
}
}
/**
* Import all non existing modules
* @throws Exception
*/
@Ignore
//@Test
public void importNonExistingIntegrationModule() throws Exception {
ObjectMapper mapper = new ObjectMapper();
File file = new File("/Users/carlsamson/Documents/dev/workspaces/shopizer-master/shopizer/sm-core/src/main/resources/reference/integrationmodules.json");
InputStream in = null;
try {
in = new FileInputStream(file);
@SuppressWarnings("rawtypes")
Map[] objects = mapper.readValue(in, Map[].class);
//get the module to be loaded
for(int i = 0; i < objects.length; i++) {
@SuppressWarnings("rawtypes")
Map o = objects[i];
//get module object
IntegrationModule module = integrationModulesLoader.loadModule(o);
if(module!=null) {
IntegrationModule m = moduleCongigurationService.getByCode(module.getCode());
if(m==null) {
moduleCongigurationService.create(module);
}
}
}
} catch (Exception e) {
throw new ServiceException(e);
} finally {
if(in !=null) {
try {
in.close();
} catch(Exception ignore) {}
}
}
}
}