/* Copyright 2004-2014 Jim Voris
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qumasoft.server;
import com.qumasoft.TestHelper;
import com.qumasoft.qvcslib.ArchiveDirManagerInterface;
import com.qumasoft.qvcslib.QVCSConstants;
import com.qumasoft.qvcslib.QVCSException;
import com.qumasoft.qvcslib.RemoteViewProperties;
import com.qumasoft.qvcslib.ServerResponseFactoryInterface;
import com.qumasoft.qvcslib.Utility;
import com.qumasoft.server.dataaccess.impl.DAOTestHelper;
import java.io.File;
import java.sql.SQLException;
import java.util.Date;
import java.util.Map;
import java.util.Properties;
import org.junit.After;
import org.junit.AfterClass;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* Test the Directory Contents Manager.
*
* @author Jim Voris
*/
public class DirectoryContentsManagerTest {
private static final String DERBY_TEST_DIRECTORY_SUFFIX = "directoryContentsManagerTest";
private static int testProjectId = -1;
private static int testTrunkBranchId = -1;
private static ProjectView translucentBranchProjectView = null;
private static ProjectView opaqueBranchProjectView = null;
private static ProjectView dateBasedViewProjectView = null;
private static RemoteViewProperties translucentBranchProperties = null;
private static RemoteViewProperties opaqueBranchProperties = null;
private static RemoteViewProperties dateBasedViewProperties = null;
private ServerResponseFactoryInterface bogusResponseObject = null;
private DirectoryContentsManager directoryContentsManager = null;
private static final String ROOT_DIRECTORY_APPENDED_PATH = "";
private static final String SUB_DIRECTORY_1_APPENDED_PATH = TestHelper.SUBPROJECT_APPENDED_PATH;
private static final String ADDED_SUB_DIRECTORY_APPENDED_PATH = "addedSubdirectory";
/**
* DirectoryContentsManager unit test class.
*/
public DirectoryContentsManagerTest() {
}
/**
* Set up stuff once for these tests.
*
* @throws java.lang.Exception if anything goes wrong.
*/
@BeforeClass
public static void setUpClass() throws Exception {
System.out.println("@BeforeClass setUpClass start.");
TestHelper.stopServerImmediately(null);
String userDirectoryString = System.getProperty("user.dir");
try {
File userDirectory = new File(userDirectoryString);
String canonicalUserDirectory = userDirectory.getCanonicalPath();
System.getProperties().setProperty("user.dir", canonicalUserDirectory);
}
finally {
}
TestHelper.emptyDerbyTestDirectory(TestHelper.buildTestDirectoryName(DERBY_TEST_DIRECTORY_SUFFIX));
TestHelper.deleteViewStore();
TestHelper.removeArchiveFiles();
TestHelper.initProjectProperties();
ViewManager.getInstance().initialize();
DirectoryIDManager.getInstance().resetStore();
DirectoryIDManager.getInstance().initialize();
FileIDManager.getInstance().resetStore();
FileIDManager.getInstance().initialize();
DirectoryIDDictionary.getInstance().resetStore();
DirectoryIDDictionary.getInstance().initialize();
FileIDDictionary.getInstance().resetStore();
FileIDDictionary.getInstance().initialize();
DatabaseManager.getInstance().setDerbyHomeDirectory(TestHelper.buildTestDirectoryName(DERBY_TEST_DIRECTORY_SUFFIX));
DatabaseManager.getInstance().initializeDatabase();
testProjectId = DAOTestHelper.createTestProject();
testTrunkBranchId = DAOTestHelper.createTrunkBranch(testProjectId);
DAOTestHelper.populateDbWithTestFiles();
initializeOpaqueBranch();
initializeTranslucentBranch();
initializeDateBasedView();
System.out.println("@BeforeClass setUpClass complete.");
}
/**
* Tear down the class level stuff.
*
* @throws java.lang.Exception if anything goes wrong.
*/
@AfterClass
public static void tearDownClass() throws Exception {
System.out.println("@AfterClass tearDownClass start.");
DatabaseManager.getInstance().shutdownDatabase();
System.out.println("@AfterClass tearDownClass complete.");
}
/**
* Set up before each test.
*/
public void setUp() {
System.out.println("@Before setUp start.");
directoryContentsManager = DirectoryContentsManagerFactory.getInstance().getDirectoryContentsManager(TestHelper.getTestProjectName());
bogusResponseObject = new BogusResponseObject();
System.out.println("@Before setUp complete.");
}
/**
* Tear down after each test.
*/
@After
public void tearDown() {
}
static private void initializeDateBasedView() throws QVCSException {
Properties projectProperties = new Properties();
dateBasedViewProperties = new RemoteViewProperties(getProjectName(), getDateBasedViewName(), projectProperties);
dateBasedViewProperties.setIsReadOnlyViewFlag(true);
dateBasedViewProperties.setIsDateBasedViewFlag(true);
dateBasedViewProperties.setIsTranslucentBranchFlag(false);
dateBasedViewProperties.setIsOpaqueBranchFlag(false);
dateBasedViewProperties.setBranchParent(QVCSConstants.QVCS_TRUNK_VIEW);
dateBasedViewProperties.setDateBaseDate(new Date());
dateBasedViewProjectView = new ProjectView();
dateBasedViewProjectView.setProjectName(getProjectName());
dateBasedViewProjectView.setViewName(getDateBasedViewName());
dateBasedViewProjectView.setRemoteViewProperties(dateBasedViewProperties);
ViewManager.getInstance().addView(dateBasedViewProjectView);
}
static private void initializeOpaqueBranch() throws QVCSException {
Properties projectProperties = new Properties();
opaqueBranchProperties = new RemoteViewProperties(getProjectName(), getTranslucentBranchName(), projectProperties);
opaqueBranchProperties.setIsReadOnlyViewFlag(false);
opaqueBranchProperties.setIsDateBasedViewFlag(false);
opaqueBranchProperties.setIsTranslucentBranchFlag(false);
opaqueBranchProperties.setIsOpaqueBranchFlag(true);
opaqueBranchProperties.setBranchParent(QVCSConstants.QVCS_TRUNK_VIEW);
opaqueBranchProperties.setBranchDate(new Date());
opaqueBranchProjectView = new ProjectView();
opaqueBranchProjectView.setProjectName(getProjectName());
opaqueBranchProjectView.setViewName(getOpaqueBranchName());
opaqueBranchProjectView.setRemoteViewProperties(opaqueBranchProperties);
ViewManager.getInstance().addView(opaqueBranchProjectView);
}
static private void initializeTranslucentBranch() throws QVCSException {
Properties projectProperties = new Properties();
translucentBranchProperties = new RemoteViewProperties(getProjectName(), getTranslucentBranchName(), projectProperties);
translucentBranchProperties.setIsReadOnlyViewFlag(false);
translucentBranchProperties.setIsDateBasedViewFlag(false);
translucentBranchProperties.setIsTranslucentBranchFlag(true);
translucentBranchProperties.setIsOpaqueBranchFlag(false);
translucentBranchProperties.setBranchParent(QVCSConstants.QVCS_TRUNK_VIEW);
translucentBranchProperties.setBranchDate(new Date());
translucentBranchProjectView = new ProjectView();
translucentBranchProjectView.setProjectName(getProjectName());
translucentBranchProjectView.setViewName(getTranslucentBranchName());
translucentBranchProjectView.setRemoteViewProperties(translucentBranchProperties);
ViewManager.getInstance().addView(translucentBranchProjectView);
}
static private String getProjectName() {
return TestHelper.getTestProjectName();
}
static private String getDateBasedViewName() {
return "now";
}
static private String getOpaqueBranchName() {
return "O-2.2.1";
}
static private String getTranslucentBranchName() {
return "T-2.2.2";
}
/**
* Test directory contents manager. We put the tests into this single test method so we can
* control the order in which the tests are run.
* @throws Exception if there is a problem.
*/
@Test
public void testDirectoryContentsManager() throws Exception {
testGetProjectName();
testAddFileToTrunk();
testAddFileToOpaqueBranch();
testAddFileToOpaqueBranchBadBranchName();
testAddFileToTranslucentBranch();
testAddFileToTranslucentBranchBadBranchName();
testRenameFileOnTrunk();
testRenameFileOnOpaqueBranch();
testRenameFileOnOpaqueBranchBadBranchName();
testRenameFileOnTranslucentBranch();
testRenameFileOnTranslucentBranchBadBranchName();
testMoveFileOnTrunk();
testMoveFileOnOpaqueBranch();
testMoveFileOnOpaqueBranchBadBranchName();
testMoveFileOnTranslucentBranch();
testMoveFileOnTranslucentBranchBadBranchName();
testDeleteFileOnTrunk();
testDeleteFileOnOpaqueBranch();
testDeleteFileOnOpaqueBranchBadBranchName();
testDeleteFileOnTranslucentBranch();
testDeleteFileOnTranslucentBranchBadBranchName();
testMoveFileFromTranslucentBranchCemetery();
testAddDirectoryOnTrunk();
testAddDirectoryOnOpaqueBranch();
testAddDirectoryOnTranslucentBranch();
testDeleteDirectoryOnTrunk();
testDeleteDirectoryOnOpaqueBranch();
testDeleteDirectoryOnTranslucentBranch();
testGetDirectoryIDCollectionForDateBasedView();
testGetDirectoryIDCollectionForTranslucentBranch();
testGetDirectoryIDCollectionForOpaqueBranch();
testGetPriority();
}
/**
* Test of getProjectName method, of class DirectoryContentsManager.
*/
public void testGetProjectName() {
System.out.println("getProjectName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
DirectoryContentsManager instance = directoryContentsManager;
String expResult = TestHelper.getTestProjectName();
String result = instance.getProjectName();
assertEquals(expResult, result);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
}
/**
* Test of addFile method, of class DirectoryContentsManager. This test adds a file to the Trunk.
*
* @throws Exception if there is a problem.
*/
public void testAddFileToTrunk() throws Exception {
System.out.println("testAddFileToTrunk");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int directoryID = 1;
int fileID = 1000;
String shortWorkfileName = "testAddFile.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.addFileToTrunk(directoryID, fileID, shortWorkfileName, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForTrunk(ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(shortWorkfileName, fileName);
}
/**
* Test of addFile method, of class DirectoryContentsManager. This test adds a file to an opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testAddFileToOpaqueBranch() throws Exception {
System.out.println("testAddFileToOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String branchName = getOpaqueBranchName();
int directoryID = 1;
int fileID = 1001;
String shortWorkfileName = "testAddFileToOpaqueBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.addFileToOpaqueBranch(branchName, directoryID, fileID, shortWorkfileName, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(shortWorkfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(shortWorkfileName, fileName);
}
/**
* Test of addFile method, of class DirectoryContentsManager. This test adds a file to an opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testAddFileToOpaqueBranchBadBranchName() throws Exception {
System.out.println("testAddFileToOpaqueBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String branchName = "Bogus Opaque Branch";
int directoryID = 1;
int fileID = 1001;
String shortWorkfileName = "testAddFileToOpaqueBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
boolean caughtExpectedException = false;
try {
instance.addFileToOpaqueBranch(branchName, directoryID, fileID, shortWorkfileName, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of addFile method, of class DirectoryContentsManager. This test adds a file to a translucent branch.
*
* @throws Exception if there is a problem.
*/
public void testAddFileToTranslucentBranch() throws Exception {
System.out.println("testAddFileToTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String branchName = getTranslucentBranchName();
int directoryID = 1;
int fileID = 1002;
String shortWorkfileName = "testAddFileToTranslucentBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.addFileToTranslucentBranch(branchName, directoryID, fileID, shortWorkfileName, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(shortWorkfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(shortWorkfileName, fileName);
}
/**
* Test of addFile method, of class DirectoryContentsManager. This test tries to add a file to a non-existent translucent branch... which causes the code under test to throw a
* QVCSException.
*
* @throws java.sql.SQLException for unexpected db problems
*/
public void testAddFileToTranslucentBranchBadBranchName() throws SQLException {
System.out.println("testAddFileToTranslucentBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String branchName = "Bogus Branch Name";
int directoryID = 1;
int fileID = 1002;
String shortWorkfileName = "testAddFileToTranslucentBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
boolean caughtExpectedException = false;
try {
instance.addFileToTranslucentBranch(branchName, directoryID, fileID, shortWorkfileName, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of renameFile method, of class DirectoryContentsManager on the Trunk view.
*
* @throws Exception if there is a problem.
*/
public void testRenameFileOnTrunk() throws Exception {
System.out.println("testRenameFileOnTrunk");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int directoryID = 1;
int fileID = 1000;
String oldWorkfileName = "testAddFile.java";
String newWorkfileName = "newTestAddFileName.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.renameFileOnTrunk(directoryID, fileID, oldWorkfileName, newWorkfileName, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForTrunk(ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(newWorkfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTrunk(ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(newWorkfileName, fileName);
}
/**
* Test of renameFile method, of class DirectoryContentsManager on the opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testRenameFileOnOpaqueBranch() throws Exception {
System.out.println("testRenameFileOnOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getOpaqueBranchName();
int directoryID = 1;
int fileID = 1001;
String oldWorkfileName = "testAddFileToOpaqueBranch.java";
String newWorkfileName = "newTestAddFileToOpaqueBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.renameFileOnOpaqueBranch(viewName, fileID, oldWorkfileName, newWorkfileName, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(newWorkfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(newWorkfileName, fileName);
}
/**
* Test of renameFile method, of class DirectoryContentsManager on the opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testRenameFileOnOpaqueBranchBadBranchName() throws Exception {
System.out.println("testRenameFileOnOpaqueBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = "Bogus Branch Name";
int fileID = 1001;
String oldWorkfileName = "testAddFileToOpaqueBranch.java";
String newWorkfileName = "newTestAddFileToOpaqueBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
boolean caughtExpectedException = false;
try {
instance.renameFileOnOpaqueBranch(viewName, fileID, oldWorkfileName, newWorkfileName, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of renameFile method, of class DirectoryContentsManager on the translucent branch.
*
* @throws Exception if there is a problem.
*/
public void testRenameFileOnTranslucentBranch() throws Exception {
System.out.println("testRenameFileOnTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getTranslucentBranchName();
int directoryID = 1;
int fileID = 1002;
String oldWorkfileName = "testAddFileToTranslucentBranch.java";
String newWorkfileName = "newTestAddFileToTranslucentBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.renameFileOnTranslucentBranch(viewName, fileID, oldWorkfileName, newWorkfileName, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(newWorkfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(newWorkfileName, fileName);
}
/**
* Test of renameFile method, of class DirectoryContentsManager on the translucent branch.
*
* @throws Exception if there is a problem.
*/
public void testRenameFileOnTranslucentBranchBadBranchName() throws Exception {
System.out.println("testRenameFileOnTranslucentBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = "Bogus Branch Name";
int fileID = 1002;
String oldWorkfileName = "testAddFileToTranslucentBranch.java";
String newWorkfileName = "newTestAddFileToTranslucentBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
boolean caughtExpectedException = false;
try {
instance.renameFileOnTranslucentBranch(viewName, fileID, oldWorkfileName, newWorkfileName, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of moveFile method, of class DirectoryContentsManager. This one tests moves on the Trunk.
*
* @throws Exception if there is a problem.
*/
public void testMoveFileOnTrunk() throws Exception {
System.out.println("testMoveFileOnTrunk");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = QVCSConstants.QVCS_TRUNK_VIEW;
int originDirectoryID = 1;
int destinationDirectoryID = 2;
int fileID = 1000;
String workfileName = "newTestAddFileName.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.moveFileOnTrunk(viewName, originDirectoryID, destinationDirectoryID, fileID, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForTrunk(SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(workfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTrunk(SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(workfileName, fileName);
}
/**
* Test of moveFile method, of class DirectoryContentsManager. This one tests moves on an opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testMoveFileOnOpaqueBranch() throws Exception {
System.out.println("testMoveFileOnOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getOpaqueBranchName();
int originDirectoryID = 1;
int destinationDirectoryID = 2;
int fileID = 1001;
String workfileName = "newTestAddFileToOpaqueBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.moveFileOnOpaqueBranch(viewName, originDirectoryID, destinationDirectoryID, fileID, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryID, bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(workfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(workfileName, fileName);
}
/**
* Test of moveFile method, of class DirectoryContentsManager. This one tests moves on an opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testMoveFileOnOpaqueBranchBadBranchName() throws Exception {
System.out.println("testMoveFileOnOpaqueBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = "Bogus Branch Name";
int originDirectoryID = 1;
int destinationDirectoryID = 2;
int fileID = 1001;
DirectoryContentsManager instance = directoryContentsManager;
boolean caughtExpectedException = false;
try {
instance.moveFileOnOpaqueBranch(viewName, originDirectoryID, destinationDirectoryID, fileID, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of moveFile method, of class DirectoryContentsManager. This one tests moves on an translucent branch.
*
* @throws Exception if there is a problem.
*/
public void testMoveFileOnTranslucentBranch() throws Exception {
System.out.println("testMoveFileOnTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getTranslucentBranchName();
int originDirectoryID = 1;
int destinationDirectoryID = 2;
int fileID = 1002;
String workfileName = "newTestAddFileToTranslucentBranch.java";
DirectoryContentsManager instance = directoryContentsManager;
instance.moveFileOnTranslucentBranch(viewName, originDirectoryID, destinationDirectoryID, fileID, bogusResponseObject);
DirectoryContents directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryID,
bogusResponseObject);
String fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(workfileName, fileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryID, bogusResponseObject);
fileName = directoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(workfileName, fileName);
}
/**
* Test of moveFile method, of class DirectoryContentsManager. This one tests moves on an translucent branch.
*
* @throws Exception if there is a problem.
*/
public void testMoveFileOnTranslucentBranchBadBranchName() throws Exception {
System.out.println("testMoveFileOnTranslucentBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = "Bogus Branch Name";
int originDirectoryID = 1;
int destinationDirectoryID = 2;
int fileID = 1002;
DirectoryContentsManager instance = directoryContentsManager;
boolean caughtExpectedException = false;
try {
instance.moveFileOnTranslucentBranch(viewName, originDirectoryID, destinationDirectoryID, fileID, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of deleteFile method, of class DirectoryContentsManager. This one tests deletes on the Trunk.
*
* @throws Exception if there is a problem.
*/
public void testDeleteFileOnTrunk() throws Exception {
System.out.println("testDeleteFileOnTrunk");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int originDirectoryID = 2;
try {
// Get the cemetery archive directory manager
ArchiveDirManagerInterface cemeteryArchiveDirManagerInterface = ServerUtility.getCemeteryArchiveDirManager(getProjectName(), bogusResponseObject);
// Cast the cemeteryArchiveDirManagerInterface to an actual ArchiveDirManager, since that is
// what it MUST be here...
ArchiveDirManager cemeteryArchiveDirManager = (ArchiveDirManager) cemeteryArchiveDirManagerInterface;
int cemeteryDirectoryID = cemeteryArchiveDirManager.getDirectoryID();
int fileID = 1000;
String workfileName = "newTestAddFileName.java";
ServerResponseFactoryInterface response = bogusResponseObject;
DirectoryContentsManager instance = directoryContentsManager;
instance.deleteFileFromTrunk(SUB_DIRECTORY_1_APPENDED_PATH, originDirectoryID, cemeteryDirectoryID, fileID, workfileName, response);
DirectoryContents cemeteryDirectoryContents = instance.getDirectoryContentsForTrunk(QVCSConstants.QVCS_CEMETERY_DIRECTORY, cemeteryDirectoryID, bogusResponseObject);
DirectoryContents originDirectoryContents = instance.getDirectoryContentsForTrunk(SUB_DIRECTORY_1_APPENDED_PATH, originDirectoryID, bogusResponseObject);
String cemeteryFileName = cemeteryDirectoryContents.getFiles().get(fileID);
String cemeteryShortArchiveName = Utility.createCemeteryShortArchiveName(fileID);
String cemeteryShortFileName = Utility.convertArchiveNameToShortWorkfileName(cemeteryShortArchiveName);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertNotNull(cemeteryFileName);
assertNull(originDirectoryContents.getFiles().get(fileID));
assertEquals(cemeteryShortFileName, cemeteryFileName);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
originDirectoryContents = instance.getDirectoryContentsForTrunk(SUB_DIRECTORY_1_APPENDED_PATH, originDirectoryID, bogusResponseObject);
instance.getDirectoryContentsForTrunk(QVCSConstants.QVCS_CEMETERY_DIRECTORY, cemeteryDirectoryID, bogusResponseObject);
cemeteryShortArchiveName = Utility.createCemeteryShortArchiveName(fileID);
cemeteryShortFileName = Utility.convertArchiveNameToShortWorkfileName(cemeteryShortArchiveName);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertNull(originDirectoryContents.getFiles().get(fileID));
assertEquals(cemeteryShortFileName, cemeteryFileName);
}
catch (NullPointerException e) {
String message = Utility.expandStackTraceToString(e);
fail("Unexpected null pointer exception: " + message);
}
catch (QVCSException e) {
String message = Utility.expandStackTraceToString(e);
fail("Unexpected QVCS exception: " + message);
}
}
/**
* Test of deleteFile method, of class DirectoryContentsManager. This one tests deletes on an opaque branch.
*/
public void testDeleteFileOnOpaqueBranch() {
System.out.println("testDeleteFileOnOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getOpaqueBranchName();
int originDirectoryID = 2;
int fileID = 1001;
String workfileName = "newTestAddFileToOpaqueBranch.java";
boolean noExceptionsFlag = false;
try {
DirectoryContentsManager instance = directoryContentsManager;
instance.deleteFileFromOpaqueBranch(viewName, originDirectoryID, -1, fileID, workfileName, bogusResponseObject);
DirectoryContents originDirectoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, originDirectoryID, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertTrue(null == originDirectoryContents.getFiles().get(fileID));
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
originDirectoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, originDirectoryID, bogusResponseObject);
String fileName = originDirectoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(null, fileName);
noExceptionsFlag = true;
}
catch (NullPointerException e) {
fail("Unexpected null pointer exception");
}
catch (QVCSException e) {
fail("Unexpected QVCS exception");
}
finally {
if (noExceptionsFlag == false) {
fail("Unknown exception caused test to fail.");
}
}
}
/**
* Test of deleteFile method, of class DirectoryContentsManager. This one tests deletes on an opaque branch.
*
* @throws Exception if there is a problem.
*/
public void testDeleteFileOnOpaqueBranchBadBranchName() throws Exception {
System.out.println("testDeleteFileOnOpaqueBranchBadBranchName");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = "Bogus Branch Name";
int originDirectoryID = 2;
int fileID = 1001;
String workfileName = "newTestAddFileToOpaqueBranch.java";
boolean caughtExpectedException = false;
try {
DirectoryContentsManager instance = directoryContentsManager;
instance.deleteFileFromOpaqueBranch(viewName, originDirectoryID, -1, fileID, workfileName, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of deleteFile method, of class DirectoryContentsManager. This one tests deletes on a translucent branch.
*/
public void testDeleteFileOnTranslucentBranch() {
System.out.println("testDeleteFileOnTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getTranslucentBranchName();
int originDirectoryID = 2;
int fileID = 1002;
String workfileName = "newTestAddFileToTranslucentBranch.java";
boolean noExceptionsFlag = false;
try {
DirectoryContentsManager instance = directoryContentsManager;
instance.deleteFileFromTranslucentBranch(viewName, originDirectoryID, -1, fileID, workfileName, bogusResponseObject);
DirectoryContents originDirectoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH,
originDirectoryID, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertTrue(null == originDirectoryContents.getFiles().get(fileID));
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
originDirectoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, originDirectoryID, bogusResponseObject);
String fileName = originDirectoryContents.getFiles().get(fileID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(null, fileName);
noExceptionsFlag = true;
}
catch (NullPointerException e) {
fail("Unexpected null pointer exception");
}
catch (QVCSException e) {
fail("Unexpected QVCS exception");
}
finally {
if (noExceptionsFlag == false) {
fail("Some unknown exception was thrown");
}
}
}
/**
* Test of deleteFile method, of class DirectoryContentsManager. This one tests deletes on a non-existent translucent branch.
*
* @throws Exception if there is a problem.
*/
public void testDeleteFileOnTranslucentBranchBadBranchName() throws Exception {
System.out.println("testDeleteFileOnTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = "Bogus Branch Name";
int originDirectoryID = 2;
int fileID = 1002;
String workfileName = "newTestAddFileToTranslucentBranch.java";
boolean caughtExpectedException = false;
try {
DirectoryContentsManager instance = directoryContentsManager;
instance.deleteFileFromTranslucentBranch(viewName, originDirectoryID, -1, fileID, workfileName, bogusResponseObject);
}
catch (QVCSException e) {
caughtExpectedException = true;
}
assertTrue(caughtExpectedException);
}
/**
* Test of moveFileFromTranslucentBranchCemetery method, of class DirectoryContentsManager.
*/
public void testMoveFileFromTranslucentBranchCemetery() {
System.out.println("testMoveFileFromTranslucentBranchCemetery");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getTranslucentBranchName();
int destinationDirectoryId = 2;
int fileId = 1002;
String workfileName = "newTestAddFileToTranslucentBranch.java";
boolean noExceptionsFlag = false;
try {
DirectoryContentsManager instance = directoryContentsManager;
instance.moveFileFromTranslucentBranchCemetery(viewName, destinationDirectoryId, fileId, workfileName, bogusResponseObject);
DirectoryContents originDirectoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH,
destinationDirectoryId, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertTrue(null != originDirectoryContents.getFiles().get(fileId));
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
originDirectoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, SUB_DIRECTORY_1_APPENDED_PATH, destinationDirectoryId, bogusResponseObject);
String fileName = originDirectoryContents.getFiles().get(fileId);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertNotNull(fileName);
noExceptionsFlag = true;
}
catch (NullPointerException e) {
fail("Unexpected null pointer exception");
}
catch (QVCSException e) {
fail("Unexpected QVCS exception");
}
finally {
if (noExceptionsFlag == false) {
fail("Some unknown exception was thrown");
}
}
}
/**
* Test of addDirectory method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testAddDirectoryOnTrunk() throws Exception {
System.out.println("testAddDirectoryOnTrunk");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = QVCSConstants.QVCS_TRUNK_VIEW;
int parentDirectoryID = 1;
int childDirectoryID = 10;
String childDirectoryName = ADDED_SUB_DIRECTORY_APPENDED_PATH;
directoryContentsManager.addDirectory(viewName, 1, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, childDirectoryID, childDirectoryName, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
DirectoryContents directoryContents = directoryContentsManager.getDirectoryContentsForTrunk(ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
String directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(childDirectoryName, directoryName);
}
/**
* Test of addDirectory method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testAddDirectoryOnOpaqueBranch() throws Exception {
System.out.println("testAddDirectoryOnOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getOpaqueBranchName();
int parentDirectoryID = 1;
int childDirectoryID = 10;
String childDirectoryName = ADDED_SUB_DIRECTORY_APPENDED_PATH;
directoryContentsManager.addDirectory(viewName, 1, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, childDirectoryID, childDirectoryName, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
DirectoryContents directoryContents = directoryContentsManager.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID,
bogusResponseObject);
String directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(childDirectoryName, directoryName);
}
/**
* Test of addDirectory method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testAddDirectoryOnTranslucentBranch() throws Exception {
System.out.println("testAddDirectoryOnTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getTranslucentBranchName();
int parentDirectoryID = 1;
int childDirectoryID = 10;
String childDirectoryName = ADDED_SUB_DIRECTORY_APPENDED_PATH;
directoryContentsManager.addDirectory(viewName, 1, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, childDirectoryID, childDirectoryName, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
DirectoryContents directoryContents = directoryContentsManager.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID,
bogusResponseObject);
String directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(childDirectoryName, directoryName);
}
/**
* Test of deleteDirectory method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testDeleteDirectoryOnTrunk() throws Exception {
System.out.println("testDeleteDirectoryOnTrunk");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int parentDirectoryID = 1;
int childDirectoryID = 10;
DirectoryContentsManager instance = directoryContentsManager;
DirectoryContents directoryContents = instance.getDirectoryContentsForTrunk(ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
String directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
assertNotNull(directoryName);
instance.deleteDirectoryOnTrunk(childDirectoryID, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTrunk(ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(null, directoryName);
}
/**
* Test of deleteDirectory method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testDeleteDirectoryOnOpaqueBranch() throws Exception {
System.out.println("testDeleteDirectoryOnOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getOpaqueBranchName();
int parentDirectoryID = 1;
int childDirectoryID = 10;
DirectoryContentsManager instance = directoryContentsManager;
DirectoryContents directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
String directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
assertNotNull(directoryName);
instance.deleteDirectoryOnOpaqueBranch(viewName, childDirectoryID, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(null, directoryName);
}
/**
* Test of deleteDirectory method, of class DirectoryContentsManager.
*
* @throws QVCSException if there is a problem.
*/
public void testDeleteDirectoryOnTranslucentBranch() throws QVCSException {
System.out.println("testDeleteDirectoryOnTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
String viewName = getTranslucentBranchName();
int parentDirectoryID = 1;
int childDirectoryID = 10;
DirectoryContentsManager instance = directoryContentsManager;
DirectoryContents directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
String directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
assertNotNull(directoryName);
instance.deleteDirectoryOnTranslucentBranch(viewName, childDirectoryID, bogusResponseObject);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
// Go back and look again... this one should actually have to go to disk to find the directory contents object.
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
directoryContents = instance.getDirectoryContentsForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, parentDirectoryID, bogusResponseObject);
directoryName = directoryContents.getChildDirectories().get(childDirectoryID);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
assertEquals(null, directoryName);
}
/**
* Test of getDirectoryIDCollectionForTranslucentBranch method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testGetDirectoryIDCollectionForDateBasedView() throws Exception {
System.out.println("getDirectoryIDCollectionForDateBasedView");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int directoryId = 1;
DirectoryContentsManager instance = directoryContentsManager;
Map<Integer, String> result = instance.getDirectoryIDCollectionForDateBasedView(dateBasedViewProjectView.getViewName(), ROOT_DIRECTORY_APPENDED_PATH, directoryId, bogusResponseObject);
assertEquals(1, result.size());
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
}
/**
* Test of getDirectoryIDCollectionForTranslucentBranch method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testGetDirectoryIDCollectionForTranslucentBranch() throws Exception {
System.out.println("getDirectoryIDCollectionForTranslucentBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int directoryId = 1;
DirectoryContentsManager instance = directoryContentsManager;
Map<Integer, String> result = instance.getDirectoryIDCollectionForTranslucentBranch(translucentBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryId, bogusResponseObject);
assertEquals(1, result.size());
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
}
/**
* Test of getDirectoryIDCollectionForOpaqueBranch method, of class DirectoryContentsManager.
*
* @throws Exception if there is a problem.
*/
public void testGetDirectoryIDCollectionForOpaqueBranch() throws Exception {
System.out.println("getDirectoryIDCollectionForOpaqueBranch");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
int directoryId = 1;
DirectoryContentsManager instance = directoryContentsManager;
Map<Integer, String> result = instance.getDirectoryIDCollectionForOpaqueBranch(opaqueBranchProjectView, ROOT_DIRECTORY_APPENDED_PATH, directoryId, bogusResponseObject);
assertEquals(1, result.size());
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
}
/**
* Test of getPriority method, of class DirectoryContentsManager.
*/
public void testGetPriority() {
System.out.println("getPriority");
setUp();
ServerTransactionManager.getInstance().flushClientTransaction(bogusResponseObject);
ServerTransactionManager.getInstance().clientBeginTransaction(bogusResponseObject);
DirectoryContentsManager instance = directoryContentsManager;
int expResult = TransactionParticipantInterface.HIGH_PRIORITY;
int result = instance.getPriority();
assertEquals(expResult, result);
ServerTransactionManager.getInstance().clientEndTransaction(bogusResponseObject);
}
}