/*
* Copyright (C) 2005-2014 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.bm.dataload.rm.fileplan;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import org.alfresco.bm.cm.FileFolderService;
import org.alfresco.bm.cm.FolderData;
import org.alfresco.bm.dataload.RMEventConstants;
import org.alfresco.bm.dataload.ScheduleFilePlanLoaders;
import org.alfresco.bm.event.Event;
import org.alfresco.bm.event.EventResult;
import org.alfresco.bm.session.SessionService;
import org.apache.commons.lang3.time.StopWatch;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import com.mongodb.DBObject;
/**
* Unit tests for ScheduleFilePlanLoaders
*
* @author Silviu Dinuta
* @since 1.0
*/
@RunWith(MockitoJUnitRunner.class)
public class ScheduleFilePlanLoadersUnitTest implements RMEventConstants
{
private static final String EMPTY_CONTEXT = "";
@Mock
private SessionService mockedSessionService;
@Mock
private FileFolderService mockedFileFolderService;
@InjectMocks
private ScheduleFilePlanLoaders scheduleFilePlanLoaders;
@Test
public void testScheduleRootCategories() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 4;
int categoryStructureDepth = 1;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setUsername(username);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
FolderData mockedFilePlanFolder = mock(FolderData.class);
when(mockedFilePlanFolder.getContext()).thenReturn(EMPTY_CONTEXT);
when(mockedFilePlanFolder.getPath()).thenReturn("/a");
List<FolderData> folders = Arrays.asList(mockedFilePlanFolder);
when(mockedFileFolderService.getFoldersByCounts(EMPTY_CONTEXT, 3L, 3L, 0L, Long.valueOf(rootCategoriesNumber-1), null, null, 0, 100)).thenReturn(folders);
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, times(1)).createNewFolder(any(FolderData.class));
verify(mockedSessionService, times(1)).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Raised further 1 events and rescheduled self.",result.getData());
assertEquals(2, result.getNextEvents().size());
Event firstEvent = result.getNextEvents().get(0);
assertEquals("loadRecordCategories", firstEvent.getName());
DBObject dataObj = (DBObject)firstEvent.getData();
assertNotNull(dataObj);
assertEquals(EMPTY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/a", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(0), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(0), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
assertEquals("scheduleFilePlanLoaders", result.getNextEvents().get(1).getName());
}
@Test
public void testScheduleRootCategoriesWtith0FilePlanDepth() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 4;
int categoryStructureDepth = 0;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setUsername(username);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
FolderData mockedFilePlanFolder = mock(FolderData.class);
when(mockedFilePlanFolder.getContext()).thenReturn(EMPTY_CONTEXT);
when(mockedFilePlanFolder.getPath()).thenReturn("/a");
List<FolderData> folders = Arrays.asList(mockedFilePlanFolder);
when(mockedFileFolderService.getFoldersByCounts(EMPTY_CONTEXT, 3L, 3L, 0L, Long.valueOf(rootCategoriesNumber-1), null, null, 0, 100)).thenReturn(folders);
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, never()).createNewFolder(any(FolderData.class));
verify(mockedSessionService, never()).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Loading completed. Raising 'done' event.",result.getData());
assertEquals(1, result.getNextEvents().size());
assertEquals("scheduleUnfiledRecordFoldersLoaders", result.getNextEvents().get(0).getName());
}
@Test
public void testScheduleChildrenCategoriesInCategories() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 0;
int categoriesChildrenNumber = 2;
int foldersChildrenNumber= 0;
int categoryStructureDepth = 4;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
scheduleFilePlanLoaders.setChildCategNumber(categoriesChildrenNumber);
scheduleFilePlanLoaders.setFolderNumber(foldersChildrenNumber);
scheduleFilePlanLoaders.setFolderCategoryMix(true);
scheduleFilePlanLoaders.setUsername(username);
FolderData mockedRootCategoryFolder = mock(FolderData.class);
when(mockedRootCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedRootCategoryFolder.getPath()).thenReturn("/a");
String name1 = ROOT_CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedRootCategoryFolder.getName()).thenReturn(name1);
FolderData mockedChildCategoryFolder = mock(FolderData.class);
when(mockedChildCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedChildCategoryFolder.getPath()).thenReturn("/b");
String name2 = CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedChildCategoryFolder.getName()).thenReturn(name2);
List<FolderData> folders = Arrays.asList(mockedRootCategoryFolder, mockedChildCategoryFolder);
when(mockedFileFolderService.getFoldersByCounts(RECORD_CATEGORY_CONTEXT, Long.valueOf(FILE_PLAN_LEVEL+1), Long.valueOf(scheduleFilePlanLoaders.getMaxLevel() - 1), 0L, Long.valueOf(categoriesChildrenNumber-1), null, null, 0, 100)).thenReturn(folders);
when(mockedFileFolderService.getChildFolders(RECORD_CATEGORY_CONTEXT, "/a", 0, 100)).thenReturn(new ArrayList<FolderData>());
when(mockedFileFolderService.getChildFolders(RECORD_CATEGORY_CONTEXT, "/b", 0, 100)).thenReturn(new ArrayList<FolderData>());
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, times(2)).createNewFolder(any(FolderData.class));
verify(mockedSessionService, times(2)).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Raised further 2 events and rescheduled self.",result.getData());
assertEquals(3, result.getNextEvents().size());
Event firstEvent = result.getNextEvents().get(0);
assertEquals("loadRecordCategories", firstEvent.getName());
DBObject dataObj = (DBObject)firstEvent.getData();
assertNotNull(dataObj);
assertEquals(RECORD_CATEGORY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/a", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(categoriesChildrenNumber), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(foldersChildrenNumber), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
Event secondEvent = result.getNextEvents().get(1);
assertEquals("loadRecordCategories", secondEvent.getName());
dataObj = (DBObject)secondEvent.getData();
assertNotNull(dataObj);
assertEquals(RECORD_CATEGORY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/b", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(categoriesChildrenNumber), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(foldersChildrenNumber), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
assertEquals("scheduleFilePlanLoaders", result.getNextEvents().get(2).getName());
}
@Test
public void testScheduleChildrenCategoriesInCategoriesWithFilePlanDepthLessThan2() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 0;
int categoriesChildrenNumber = 2;
int foldersChildrenNumber= 0;
int categoryStructureDepth = 1;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
scheduleFilePlanLoaders.setChildCategNumber(categoriesChildrenNumber);
scheduleFilePlanLoaders.setFolderNumber(foldersChildrenNumber);
scheduleFilePlanLoaders.setFolderCategoryMix(true);
scheduleFilePlanLoaders.setUsername(username);
FolderData mockedRootCategoryFolder = mock(FolderData.class);
when(mockedRootCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedRootCategoryFolder.getPath()).thenReturn("/a");
String name1 = ROOT_CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedRootCategoryFolder.getName()).thenReturn(name1);
FolderData mockedChildCategoryFolder = mock(FolderData.class);
when(mockedChildCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedChildCategoryFolder.getPath()).thenReturn("/b");
String name2 = CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedChildCategoryFolder.getName()).thenReturn(name2);
List<FolderData> folders = Arrays.asList(mockedRootCategoryFolder, mockedChildCategoryFolder);
when(mockedFileFolderService.getFoldersByCounts(RECORD_CATEGORY_CONTEXT, Long.valueOf(FILE_PLAN_LEVEL+1), Long.valueOf(scheduleFilePlanLoaders.getMaxLevel() - 1 -1), 0L, Long.valueOf(categoriesChildrenNumber-1), null, null, 0, 100)).thenReturn(folders);
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, never()).createNewFolder(any(FolderData.class));
verify(mockedSessionService, never()).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Loading completed. Raising 'done' event.",result.getData());
assertEquals(1, result.getNextEvents().size());
assertEquals("scheduleUnfiledRecordFoldersLoaders", result.getNextEvents().get(0).getName());
}
@Test
public void testScheduleChildrenRecordFoldersInCategoriesWithFilePlanDepthLessThan2() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 0;
int categoriesChildrenNumber = 0;
int foldersChildrenNumber= 2;
int categoryStructureDepth = 1;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
scheduleFilePlanLoaders.setChildCategNumber(categoriesChildrenNumber);
scheduleFilePlanLoaders.setFolderNumber(foldersChildrenNumber);
scheduleFilePlanLoaders.setFolderCategoryMix(true);
scheduleFilePlanLoaders.setUsername(username);
FolderData mockedRootCategoryFolder = mock(FolderData.class);
when(mockedRootCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedRootCategoryFolder.getPath()).thenReturn("/a");
String name1 = ROOT_CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedRootCategoryFolder.getName()).thenReturn(name1);
FolderData mockedChildCategoryFolder = mock(FolderData.class);
when(mockedChildCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedChildCategoryFolder.getPath()).thenReturn("/b");
String name2 = CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedChildCategoryFolder.getName()).thenReturn(name2);
List<FolderData> folders = Arrays.asList(mockedRootCategoryFolder, mockedChildCategoryFolder);
when(mockedFileFolderService.getFoldersByCounts(RECORD_CATEGORY_CONTEXT, Long.valueOf(FILE_PLAN_LEVEL+1), Long.valueOf(scheduleFilePlanLoaders.getMaxLevel() - 1 -1), 0L, Long.valueOf(foldersChildrenNumber-1), null, null, 0, 100)).thenReturn(folders);
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, never()).createNewFolder(any(FolderData.class));
verify(mockedSessionService, never()).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Loading completed. Raising 'done' event.",result.getData());
assertEquals(1, result.getNextEvents().size());
assertEquals("scheduleUnfiledRecordFoldersLoaders", result.getNextEvents().get(0).getName());
}
@Test
public void testScheduleChildrenRecordFoldersInCategories() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 0;
int categoriesChildrenNumber = 0;
int foldersChildrenNumber= 2;
int categoryStructureDepth = 4;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
scheduleFilePlanLoaders.setChildCategNumber(categoriesChildrenNumber);
scheduleFilePlanLoaders.setFolderNumber(foldersChildrenNumber);
scheduleFilePlanLoaders.setFolderCategoryMix(true);
scheduleFilePlanLoaders.setUsername(username);
FolderData mockedRootCategoryFolder = mock(FolderData.class);
when(mockedRootCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedRootCategoryFolder.getPath()).thenReturn("/a");
String name1 = ROOT_CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedRootCategoryFolder.getName()).thenReturn(name1);
FolderData mockedChildCategoryFolder = mock(FolderData.class);
when(mockedChildCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedChildCategoryFolder.getPath()).thenReturn("/b");
String name2 = CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedChildCategoryFolder.getName()).thenReturn(name2);
List<FolderData> folders = Arrays.asList(mockedRootCategoryFolder, mockedChildCategoryFolder);
when(mockedFileFolderService.getFoldersByCounts(RECORD_CATEGORY_CONTEXT, Long.valueOf(FILE_PLAN_LEVEL+1), Long.valueOf(scheduleFilePlanLoaders.getMaxLevel() - 1), 0L, Long.valueOf(foldersChildrenNumber-1), null, null, 0, 100)).thenReturn(folders);
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, times(2)).createNewFolder(any(FolderData.class));
verify(mockedSessionService, times(2)).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Raised further 2 events and rescheduled self.",result.getData());
assertEquals(3, result.getNextEvents().size());
Event firstEvent = result.getNextEvents().get(0);
assertEquals("loadRecordCategories", firstEvent.getName());
DBObject dataObj = (DBObject)firstEvent.getData();
assertNotNull(dataObj);
assertEquals(RECORD_CATEGORY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/a", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(categoriesChildrenNumber), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(foldersChildrenNumber), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
Event secondEvent = result.getNextEvents().get(1);
assertEquals("loadRecordCategories", secondEvent.getName());
dataObj = (DBObject)secondEvent.getData();
assertNotNull(dataObj);
assertEquals(RECORD_CATEGORY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/b", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(categoriesChildrenNumber), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(foldersChildrenNumber), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
assertEquals("scheduleFilePlanLoaders", result.getNextEvents().get(2).getName());
}
@Test
public void testScheduleChildrenRecordFoldersWithoutMix() throws Exception
{
int maxActiveLoaders = 8;
int rootCategoriesNumber = 0;
int categoriesChildrenNumber = 0;
int foldersChildrenNumber= 2;
int categoryStructureDepth = 4;
String username = "bob";
scheduleFilePlanLoaders.setMaxActiveLoaders(maxActiveLoaders);
scheduleFilePlanLoaders.setCategoryNumber(rootCategoriesNumber);
scheduleFilePlanLoaders.setCategoryStructureDepth(categoryStructureDepth);
scheduleFilePlanLoaders.setChildCategNumber(categoriesChildrenNumber);
scheduleFilePlanLoaders.setFolderNumber(foldersChildrenNumber);
scheduleFilePlanLoaders.setFolderCategoryMix(false);
scheduleFilePlanLoaders.setUsername(username);
FolderData mockedRootCategoryFolder = mock(FolderData.class);
when(mockedRootCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedRootCategoryFolder.getPath()).thenReturn("/a");
String name1 = ROOT_CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedRootCategoryFolder.getName()).thenReturn(name1);
FolderData mockedChildCategoryFolder = mock(FolderData.class);
when(mockedChildCategoryFolder.getContext()).thenReturn(RECORD_CATEGORY_CONTEXT);
when(mockedChildCategoryFolder.getPath()).thenReturn("/b");
String name2 = CATEGORY_NAME_IDENTIFIER + UUID.randomUUID().toString();
when(mockedChildCategoryFolder.getName()).thenReturn(name2);
List<FolderData> folders = Arrays.asList(mockedRootCategoryFolder, mockedChildCategoryFolder);
when(mockedFileFolderService.getFoldersByCounts(RECORD_CATEGORY_CONTEXT, Long.valueOf(FILE_PLAN_LEVEL+1), Long.valueOf(scheduleFilePlanLoaders.getMaxLevel() - 1), 0L, Long.valueOf(foldersChildrenNumber-1), null, null, 0, 100)).thenReturn(folders);
EventResult result = scheduleFilePlanLoaders.processEvent(null, new StopWatch());
verify(mockedFileFolderService, times(2)).createNewFolder(any(FolderData.class));
verify(mockedSessionService, times(2)).startSession(any(DBObject.class));
assertEquals(true, result.isSuccess());
assertEquals("Raised further 2 events and rescheduled self.",result.getData());
assertEquals(3, result.getNextEvents().size());
Event firstEvent = result.getNextEvents().get(0);
assertEquals("loadRecordCategories", firstEvent.getName());
DBObject dataObj = (DBObject)firstEvent.getData();
assertNotNull(dataObj);
assertEquals(RECORD_CATEGORY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/a", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(categoriesChildrenNumber), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(0), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
Event secondEvent = result.getNextEvents().get(1);
assertEquals("loadRecordCategories", secondEvent.getName());
dataObj = (DBObject)secondEvent.getData();
assertNotNull(dataObj);
assertEquals(RECORD_CATEGORY_CONTEXT, (String) dataObj.get(FIELD_CONTEXT));
assertEquals("/b", (String) dataObj.get(FIELD_PATH));
assertEquals(Integer.valueOf(rootCategoriesNumber), (Integer) dataObj.get(FIELD_ROOT_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(categoriesChildrenNumber), (Integer) dataObj.get(FIELD_CATEGORIES_TO_CREATE));
assertEquals(Integer.valueOf(0), (Integer) dataObj.get(FIELD_FOLDERS_TO_CREATE));
assertEquals(username, (String) dataObj.get(FIELD_SITE_MANAGER));
assertEquals("scheduleFilePlanLoaders", result.getNextEvents().get(2).getName());
}
}