mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-30 18:15:39 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32444 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
206 lines
7.4 KiB
Java
206 lines
7.4 KiB
Java
package org.alfresco.filesys.repo;
|
|
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
|
|
import junit.framework.TestCase;
|
|
|
|
import org.alfresco.repo.content.filestore.FileContentReader;
|
|
import org.alfresco.service.cmr.repository.ContentReader;
|
|
import org.alfresco.util.TempFileProvider;
|
|
import org.apache.commons.logging.Log;
|
|
import org.apache.commons.logging.LogFactory;
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
|
/**
|
|
* Junit test of CIFSContentComparatorTest
|
|
*
|
|
* @author mrogers
|
|
*
|
|
*/
|
|
public class CIFSContentComparatorTest extends TestCase
|
|
{
|
|
|
|
private static Log logger = LogFactory.getLog(ContentDiskDriverTest.class);
|
|
|
|
protected void setUp() throws Exception
|
|
{
|
|
|
|
}
|
|
|
|
@Override
|
|
protected void tearDown() throws Exception
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Test Basic functionailty with a plain text file
|
|
*/
|
|
public void testPlainTextCompareContent() throws Exception
|
|
{
|
|
CIFSContentComparator contentComparator = new CIFSContentComparator();
|
|
contentComparator.init();
|
|
|
|
/**
|
|
* Test 1
|
|
*/
|
|
File file1 = TempFileProvider.createTempFile("testCIFSContentComparator","txt");
|
|
File file2 = TempFileProvider.createTempFile("testCIFSContentComparator","txt");
|
|
|
|
/**
|
|
* test a couple of empty files
|
|
*/
|
|
{
|
|
FileContentReader existingContent = new FileContentReader(file1);
|
|
boolean result = contentComparator.isContentEqual(existingContent, file1);
|
|
assertTrue("compare the same empty file, should be equal", result);
|
|
}
|
|
|
|
{
|
|
ContentReader reader = new FileContentReader(file2);
|
|
|
|
boolean result = contentComparator.isContentEqual(reader, file1);
|
|
assertTrue("compare two empty files, should be equal", result);
|
|
}
|
|
|
|
/**
|
|
* Test quick brown fox "text/plain" with itself
|
|
*/
|
|
{
|
|
FileOutputStream os1 = new FileOutputStream(file1);
|
|
os1.write("The quick brown fox".getBytes("UTF-8"));
|
|
os1.close();
|
|
|
|
ContentReader reader = new FileContentReader(file1);
|
|
reader.setMimetype("text/plain");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, file1);
|
|
assertTrue("compare plain text file, should be equal", result);
|
|
}
|
|
|
|
/**
|
|
* Negative test - compare quick brown fox with empty file
|
|
*/
|
|
{
|
|
ContentReader reader = new FileContentReader(file1);
|
|
reader.setMimetype("text/plain");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, file2);
|
|
assertTrue("compare plain text file, should not be equal", !result);
|
|
}
|
|
|
|
/**
|
|
* Compare same length plain text files
|
|
*
|
|
* "The quick brown fox" vs. "The quick fox brown"
|
|
*/
|
|
{
|
|
FileOutputStream os2 = new FileOutputStream(file2);
|
|
os2.write("The quick fox brown".getBytes("UTF-8"));
|
|
os2.close();
|
|
assertTrue("test error test files different length", file1.length() == file2.length());
|
|
ContentReader reader = new FileContentReader(file1);
|
|
reader.setMimetype("text/plain");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, file2);
|
|
assertTrue("compare different text file, should not be equal", !result);
|
|
|
|
}
|
|
}
|
|
|
|
public void testProjectFiles() throws Exception
|
|
{
|
|
CIFSContentComparator contentComparator = new CIFSContentComparator();
|
|
contentComparator.init();
|
|
|
|
ClassPathResource file0Resource = new ClassPathResource("filesys/ContentComparatorTest0.mpp");
|
|
assertNotNull("unable to find test resource filesys/filesys/ContentComparatorTest0.mpp", file0Resource);
|
|
|
|
ClassPathResource file1Resource = new ClassPathResource("filesys/ContentComparatorTest1.mpp");
|
|
assertNotNull("unable to find test resource filesys/filesys/ContentComparatorTest1.mpp", file1Resource);
|
|
|
|
ClassPathResource file2Resource = new ClassPathResource("filesys/ContentComparatorTest2.mpp");
|
|
assertNotNull("unable to find test resource filesys/filesys/ContentComparatorTest2.mpp", file1Resource);
|
|
|
|
File textFile = TempFileProvider.createTempFile("testCIFSContentComparator","txt");
|
|
FileOutputStream os1 = new FileOutputStream(textFile);
|
|
os1.write("The quick brown fox".getBytes("UTF-8"));
|
|
os1.close();
|
|
|
|
/**
|
|
* Compare same project file with itself
|
|
*/
|
|
{
|
|
File file1 = file1Resource.getFile();
|
|
|
|
ContentReader reader = new FileContentReader(file1);
|
|
reader.setMimetype("application/vnd.ms-project");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, file1);
|
|
assertTrue("compare same project file, should be equal", result);
|
|
}
|
|
|
|
/**
|
|
* Compare project file with plain text file
|
|
*/
|
|
{
|
|
File file1 = file1Resource.getFile();
|
|
|
|
ContentReader reader = new FileContentReader(file1);
|
|
reader.setMimetype("application/vnd.ms-project");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, textFile);
|
|
assertTrue("compare project file with text file, should not be equal", !result);
|
|
}
|
|
|
|
/**
|
|
* Compare different project files
|
|
*/
|
|
{
|
|
File file1 = file1Resource.getFile();
|
|
File file2 = file2Resource.getFile();
|
|
|
|
ContentReader reader = new FileContentReader(file1);
|
|
reader.setMimetype("application/vnd.ms-project");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, file2);
|
|
assertTrue("compare different project file, should not be equal", !result);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Open and close of a project file changes certain header properties.
|
|
* Test File 1 has been opened and closed.
|
|
* @throws Exception
|
|
*/
|
|
public void testProjectTrivialDiffProjectFiles() throws Exception
|
|
{
|
|
CIFSContentComparator contentComparator = new CIFSContentComparator();
|
|
contentComparator.init();
|
|
|
|
ClassPathResource file0Resource = new ClassPathResource("filesys/ContentComparatorTest0.mpp");
|
|
assertNotNull("unable to find test resource filesys/filesys/ContentComparatorTest0.mpp", file0Resource);
|
|
|
|
ClassPathResource file1Resource = new ClassPathResource("filesys/ContentComparatorTest1.mpp");
|
|
assertNotNull("unable to find test resource filesys/filesys/ContentComparatorTest1.mpp", file1Resource);
|
|
|
|
/**
|
|
* Compare trivially different project files, should ignore trivial differences and be equal
|
|
*/
|
|
{
|
|
File file0 = file0Resource.getFile();
|
|
File file1 = file1Resource.getFile();
|
|
|
|
ContentReader reader = new FileContentReader(file0);
|
|
reader.setMimetype("application/vnd.ms-project");
|
|
reader.setEncoding("UTF-8");
|
|
boolean result = contentComparator.isContentEqual(reader, file1);
|
|
assertTrue("compare trivially different project file, should be equal", result);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|