package com.uwsoft.editor.proxy;
import com.runner.LibgdxRunner;
import com.uwsoft.editor.Overlap2DFacade;
import com.uwsoft.editor.renderer.data.ProjectInfoVO;
import com.vo.ProjectVO;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import java.io.File;
import java.util.Random;
import static java.io.File.separator;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;
import static org.mockito.MockitoAnnotations.initMocks;
@RunWith(LibgdxRunner.class)
public class ProjectManagerTest {
private Random random = new Random();
private ProjectManager projectManager;
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
@Before
public void setUp() throws Exception {
initMocks(this);
projectManager = new ProjectManager();
Overlap2DFacade overlap2DFacade = Overlap2DFacade.getInstance();
overlap2DFacade.registerProxy(projectManager);
overlap2DFacade.registerProxy(new SceneDataManager());
}
@Test
public void shouldGetProjectManagerInformation() throws Exception {
String rootPath = projectManager.getRootPath();
assertThat(rootPath, not(nullValue()));
}
@Test
public void shouldAbleToCreateNewProject() throws Exception {
projectManager.createEmptyProject(String.format("%d%s", random.nextLong(), separator), 800, 600, 1);
ProjectVO currentProjectVO = projectManager.getCurrentProjectVO();
ProjectInfoVO currentProjectInfoVO = projectManager.getCurrentProjectInfoVO();
assertThat(currentProjectVO.texturepackerWidth, is("4096"));
assertThat(currentProjectVO.texturepackerHeight, is("4096"));
assertThat(currentProjectVO.projectVersion, not(nullValue()));
assertThat(currentProjectInfoVO.originalResolution.width, is(800));
assertThat(currentProjectInfoVO.originalResolution.height, is(600));
assertThat(currentProjectInfoVO.pixelToWorld, is(1));
}
/*
@Test
public void shouldExportProject() throws Exception {
String projectPath = temporaryFolder.newFolder().getAbsolutePath() + separator + "test";
String exportPath = temporaryFolder.newFolder().getAbsolutePath() + separator + "export";
projectManager.createEmptyProject(projectPath, 800, 600, 1);
File exportFolder = new File(exportPath);
assertThat(exportFolder.list().length, is(0));
projectManager.setExportPaths(new File(exportPath));
projectManager.exportProject();
assertThat(exportFolder.list().length, is(4));
}
@Test
public void shouldCreateDTFileAfterSaveProject() throws Exception {
String projectPath = temporaryFolder.newFolder().getAbsolutePath() + separator + "test2";
String exportPath = temporaryFolder.newFolder().getAbsolutePath() + separator + "export2";
projectManager.createEmptyProject(projectPath, 800, 600, 1);
File exportFolder = new File(exportPath);
File[] files = exportFolder.listFiles((dir, name) -> {
return name.contains("project.dt");
});
FileUtils.forceDelete(files[0]);
projectManager.saveCurrentProject();
files = exportFolder.listFiles((dir, name) -> {
return name.contains("project.dt");
});
assertThat(files.length, is(1));
}*/
}