package it.geosolutions.geocollect.android.core.test;
import it.geosolutions.android.map.utils.MapFilesProvider;
import it.geosolutions.geocollect.android.core.mission.utils.MissionUtils;
import it.geosolutions.geocollect.model.config.MissionTemplate;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import com.google.gson.Gson;
public class TemplateBasedDownloadTest extends android.test.AndroidTestCase {
/**
* tests if the template is correctly parsed containing background urls
* and if the state which is returned by checkTemplateForBackgroundData
* corresponds to the availability of basedir/bg.map, the default background file
*/
public void testTemplateParsing(){
InputStream inputStream = getContext().getResources().openRawResource(R.raw.defaulttemplate);
final Gson gson = new Gson();
final BufferedReader reader =new BufferedReader(new InputStreamReader(inputStream));
final MissionTemplate defaultTemplate = gson.fromJson(reader, MissionTemplate.class);
HashMap<String,Integer> urls = MissionUtils.getContentUrlsAndFileAmountForTemplate(defaultTemplate);
assertTrue(urls.size() > 0);
final String mount = MapFilesProvider.getEnvironmentDirPath(getContext());
final String baseDir= MapFilesProvider.getBaseDir();
final boolean bgExists = MissionUtils.checkTemplateForBackgroundData(getContext(), defaultTemplate);
final File bgFile = new File(mount + baseDir+ "/bg.map");
assertTrue(bgFile.exists() && bgExists);
}
}