Package org.thechiselgroup.choosel.workbench.server.workspace

Source Code of org.thechiselgroup.choosel.workbench.server.workspace.WorkspacePersistenceServiceImplementationTest

/*******************************************************************************
* Copyright 2009, 2010 Lars Grammel
*
* 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 org.thechiselgroup.choosel.workbench.server.workspace;

import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.thechiselgroup.choosel.core.client.resources.Resource;
import org.thechiselgroup.choosel.core.client.util.ServiceException;
import org.thechiselgroup.choosel.core.shared.test.AdvancedAsserts;
import org.thechiselgroup.choosel.workbench.client.workspace.dto.ResourceSetDTO;
import org.thechiselgroup.choosel.workbench.client.workspace.dto.WindowDTO;
import org.thechiselgroup.choosel.workbench.client.workspace.dto.WorkspaceDTO;
import org.thechiselgroup.choosel.workbench.client.workspace.dto.WorkspacePreviewDTO;
import org.thechiselgroup.choosel.workbench.client.workspace.service.WorkspacePersistenceService;

public class WorkspacePersistenceServiceImplementationTest {

    private static final Long ID = new Long(101);

    private static final String NAME = "aa";

    @Mock
    private PersistenceManager manager;

    private PersistentWorkspace persistentWorkspace;

    @Mock
    private PersistenceManagerFactory pmf;

    @Mock
    private WorkspaceSecurityManager securityManager;

    private WorkspacePersistenceService service;

    private WorkspaceDTO[] workspaceDTOs;

    @Test
    public void getAllWorkspaces() throws ServiceException {
        PersistentWorkspacePermission permission = new PersistentWorkspacePermission();
        permission.setWorkspace(persistentWorkspace);

        Collection<PersistentWorkspacePermission> permissions = new ArrayList<PersistentWorkspacePermission>();
        permissions.add(permission);
        when(securityManager.getWorkspacePermissionsForCurrentUser(manager))
                .thenReturn(permissions);
        when(manager.getObjectById(PersistentWorkspace.class, ID)).thenReturn(
                persistentWorkspace);

        List<WorkspacePreviewDTO> result = service.loadWorkspacePreviews();

        List<WorkspacePreviewDTO> expected = new ArrayList<WorkspacePreviewDTO>();
        expected.add(new WorkspacePreviewDTO(ID, NAME));
        AdvancedAsserts.assertSortedEquals(expected, result);
    }

    // TODO test DTO update

    @Test
    public void saveNewWorkspaceDTO() throws ServiceException {
        WindowDTO windowDTO = new WindowDTO();
        workspaceDTOs[0].setWindows(new WindowDTO[] { windowDTO });
        workspaceDTOs[0].setResources(new Resource[0]);
        workspaceDTOs[0].setResourceSets(new ResourceSetDTO[0]);
        persistentWorkspace.setWindows(new WindowDTO[] { windowDTO });

        when(manager.makePersistent(Matchers.any())).thenReturn(
                persistentWorkspace);

        Long result = service.saveWorkspace(workspaceDTOs[0]);

        verify(pmf).getPersistenceManager();
        verify(manager).makePersistent(any(PersistentWorkspace.class));
        verify(manager).close();
        assertEquals(ID, result);
    }

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);

        workspaceDTOs = new WorkspaceDTO[] { new WorkspaceDTO(null, NAME),
                new WorkspaceDTO() };

        service = new WorkspacePersistenceServiceImplementation(pmf,
                securityManager);

        persistentWorkspace = new PersistentWorkspace();
        persistentWorkspace.setId(ID);
        persistentWorkspace.setName(NAME);

        when(pmf.getPersistenceManager()).thenReturn(manager);
    }
}
TOP

Related Classes of org.thechiselgroup.choosel.workbench.server.workspace.WorkspacePersistenceServiceImplementationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.