org.jasig.portlet.blackboardvcportlet.dao.ws.impl.MultimediaWSDaoTestBase.java Source code

Java tutorial

Introduction

Here is the source code for org.jasig.portlet.blackboardvcportlet.dao.ws.impl.MultimediaWSDaoTestBase.java

Source

/**
 * Licensed to Apereo under one or more contributor license
 * agreements. See the NOTICE file distributed with this work
 * for additional information regarding copyright ownership.
 * Apereo licenses this file to you 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 the following location:
 *
 *   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.jasig.portlet.blackboardvcportlet.dao.ws.impl;

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

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.activation.DataHandler;
import javax.mail.util.ByteArrayDataSource;

import org.jasig.portlet.blackboardvcportlet.dao.ws.MultimediaWSDao;
import org.jasig.portlet.blackboardvcportlet.dao.ws.SessionWSDao;
import org.jasig.portlet.blackboardvcportlet.security.SecurityExpressionEvaluator;
import org.jasig.springframework.mockito.MockitoFactoryBean;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.elluminate.sas.BlackboardMultimediaResponse;
import com.elluminate.sas.BlackboardSessionResponse;

public class MultimediaWSDaoTestBase extends AbstractWSIT {

    @Autowired
    SecurityExpressionEvaluator securityExpressionEvaluator;

    MultimediaWSDao dao;

    SessionWSDao sessionDao;

    List<Long> multimedias = new ArrayList<Long>();

    @Autowired
    public void setSessionDao(SessionWSDao dao) {
        this.sessionDao = dao;
    }

    @Autowired
    public void setMMWSDao(MultimediaWSDao dao) {
        this.dao = dao;
    }

    @SuppressWarnings("unchecked")
    @Before
    public void before() {
        MockitoFactoryBean.resetAllMocks();
        when(securityExpressionEvaluator.authorize(any(String.class))).thenReturn(true);
        when(securityExpressionEvaluator.authorize(any(String.class), any(Map.class))).thenReturn(true);
        form = buildSession();
        user = buildUser();
        session = sessionDao.createSession(user, form);
    }

    @After
    public void after() {
        List<BlackboardSessionResponse> sessions = sessionDao.getSessions(null, null, null, user.getEmail(), null,
                null, null);
        for (BlackboardSessionResponse session : sessions) {
            List<BlackboardMultimediaResponse> repositoryMultimedias = dao
                    .getSessionMultimedias(session.getSessionId());
            for (BlackboardMultimediaResponse multimedia : repositoryMultimedias) {
                dao.removeSessionMultimedia(session.getSessionId(), multimedia.getMultimediaId());
            }
            sessionDao.deleteSession(session.getSessionId());
        }

        for (Long multimediaId : multimedias) {
            dao.removeRepositoryMultimedia(multimediaId);
        }

    }

    @Test
    public void getRepositoryMultimediasTest() throws Exception {
        List<BlackboardMultimediaResponse> repositoryMultimedias = dao.getRepositoryMultimedias(user.getUniqueId(),
                null, null);
        assertEquals(repositoryMultimedias.size(), 0);
    }

    @Test
    public void getSessionRepositoryMultimediasTest() throws Exception {
        List<BlackboardMultimediaResponse> sessionRepositoryMultimedias = dao
                .getSessionMultimedias(session.getSessionId());
        assertTrue(sessionRepositoryMultimedias.size() == 0);
    }

    @Test
    public void uploadRepositoryMultimediaTest() throws Exception {
        BlackboardMultimediaResponse uploadRepositoryMultimedia = createRepoMultimedia();
        assertNotNull(uploadRepositoryMultimedia);
    }

    @Test
    public void createSessionMultimediaTest() throws Exception {
        InputStream is = new ByteArrayInputStream("TEST2".getBytes());
        ByteArrayDataSource rawData = new ByteArrayDataSource(is, "video/mpeg");
        DataHandler dataHandler = new DataHandler(rawData);
        BlackboardMultimediaResponse createSessionMultimedia = dao.createSessionMultimedia(session.getSessionId(),
                user.getEmail(), "test.mpeg", "aliens", dataHandler);

        multimedias.add(createSessionMultimedia.getMultimediaId());

        List<BlackboardMultimediaResponse> repositoryMultimedias = dao
                .getSessionMultimedias(session.getSessionId());
        assertNotNull(repositoryMultimedias);
        assertTrue(repositoryMultimedias.size() == 1);
    }

    @Test
    public void linkSessionToMultimediaTest() throws Exception {
        BlackboardMultimediaResponse uploadRepositoryMultimedia = createRepoMultimedia();
        assertNotNull(uploadRepositoryMultimedia);

        boolean linkSessionToMultimedia = dao.linkSessionToMultimedia(session.getSessionId(),
                uploadRepositoryMultimedia.getMultimediaId());

        assertTrue(linkSessionToMultimedia);

        List<BlackboardMultimediaResponse> repositoryMultimedias = dao
                .getSessionMultimedias(session.getSessionId());
        assertNotNull(repositoryMultimedias);
        assertTrue(repositoryMultimedias.size() == 1);

    }

    @Test
    public void removeRepositoryMultimediaTest() throws Exception {
        BlackboardMultimediaResponse createRepoMultimedia = createRepoMultimedia();
        assertNotNull(createRepoMultimedia);

        boolean removeRepositoryMultimedia = dao.removeRepositoryMultimedia(createRepoMultimedia.getMultimediaId());

        assertTrue(removeRepositoryMultimedia);
    }

    @Test
    public void removeSessionMultimediaTest() throws Exception {
        BlackboardMultimediaResponse multimedia = createRepoMultimedia();
        assertNotNull(multimedia);

        assertTrue(dao.linkSessionToMultimedia(session.getSessionId(), multimedia.getMultimediaId()));

        dao.removeSessionMultimedia(session.getSessionId(), multimedia.getMultimediaId());

    }

    protected BlackboardMultimediaResponse createRepoMultimedia() throws Exception {
        InputStream is = new ByteArrayInputStream("fdsdfsfsdadsfasfda".getBytes());
        ByteArrayDataSource rawData = new ByteArrayDataSource(is, "video/mpeg");
        DataHandler dataHandler = new DataHandler(rawData);

        BlackboardMultimediaResponse uploadRepositoryMultimedia = dao.uploadRepositoryMultimedia(user.getEmail(),
                "test.mpeg", "aliens", dataHandler);
        multimedias.add(uploadRepositoryMultimedia.getMultimediaId());
        return uploadRepositoryMultimedia;
    }
}