org.jtheque.movies.persistence.od.MovieImplTest.java Source code

Java tutorial

Introduction

Here is the source code for org.jtheque.movies.persistence.od.MovieImplTest.java

Source

package org.jtheque.movies.persistence.od;

import org.jtheque.collections.DataCollection;
import org.jtheque.collections.impl.DataCollectionImpl;
import org.jtheque.movies.persistence.od.able.Category;
import org.jtheque.movies.persistence.od.able.Movie;
import org.jtheque.movies.persistence.od.impl.CategoryImpl;
import org.jtheque.movies.persistence.od.impl.MovieImpl;
import org.jtheque.movies.utils.Resolution;
import org.jtheque.persistence.Note;
import org.jtheque.persistence.DaoNotes;
import org.jtheque.utils.io.FileUtils;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import java.io.File;
import java.util.Arrays;

import static org.junit.Assert.*;

/*
 * Copyright JTheque (Baptiste Wicht)
 *
 * 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.
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/org/jtheque/core/spring/core-test-beans.xml",
        "/org/jtheque/movies/movies-test-beans.xml", "/org/jtheque/primary/spring/primary-test-beans.xml" })
public class MovieImplTest {
    private MovieImpl movie;

    @Resource
    private DaoNotes daoNotes;

    @Before
    public void setUp() {
        movie = new MovieImpl();
    }

    @Test
    public void testAddCategories() {
        Category category1 = new CategoryImpl();
        category1.setId(1);

        Category category2 = new CategoryImpl();
        category2.setId(2);

        movie.addCategories(Arrays.asList(category1, category2));

        assertEquals(2, movie.getCategories().size());
        assertTrue(movie.getCategories().contains(category1));
        assertTrue(movie.getCategories().contains(category2));
    }

    @Test
    public void testAddCategory() {
        Category category = new CategoryImpl();

        movie.addCategory(category);

        assertEquals(1, movie.getCategories().size());
        assertTrue(movie.getCategories().contains(category));
    }

    @Test
    public void testIsInCollection() {
        DataCollection collection1 = new DataCollectionImpl();
        collection1.setId(10);

        DataCollection collection2 = new DataCollectionImpl();
        collection2.setId(12);

        assertFalse(movie.isInCollection(collection1));
        assertFalse(movie.isInCollection(collection2));

        movie.setTheCollection(collection1);

        assertFalse(movie.isInCollection(collection2));
        assertTrue(movie.isInCollection(collection1));
    }

    @Test
    public void testHasCategories() {
        assertFalse(movie.hasCategories());

        Category category = new CategoryImpl();

        movie.addCategory(category);

        assertTrue(movie.hasCategories());
    }

    @Test
    public void testToString() {
        movie.setTitle("Super title");

        assertEquals("Super title", movie.toString());

        movie.setTitle("Super title 2");

        assertEquals("Super title 2", movie.toString());
    }

    @Test
    public void testHashCode() {
        movie.setId(123);
        movie.setTitle("Test");
        movie.setFile("C:\\test.dat");
        movie.setNote(Note.BAD);

        Movie movie2 = new MovieImpl();
        movie2.setId(123);
        movie2.setTitle("Test");
        movie2.setFile("C:\\test.dat");
        movie2.setNote(Note.BAD);

        Category cat1 = new CategoryImpl("Test 1");
        cat1.setId(12);

        Category cat2 = new CategoryImpl("Test 2");
        cat2.setId(122);

        movie.addCategory(cat1);
        movie.addCategory(cat2);

        movie2.addCategory(cat1);
        movie2.addCategory(cat2);

        assertEquals(movie.hashCode(), movie2.hashCode());

        movie2.getCategories().clear();

        assertFalse(movie.hashCode() == movie2.hashCode());

        movie2.addCategory(cat1);
        movie2.addCategory(cat2);

        movie.setTitle("Test 1234");

        assertFalse(movie.hashCode() == movie2.hashCode());
    }

    @Test
    public void testIsOfCategory() {
        Category cat1 = new CategoryImpl("Test 1");
        cat1.setId(12);

        Category cat2 = new CategoryImpl("Test 2");
        cat2.setId(122);

        assertFalse(movie.isOfCategory(null));
        assertFalse(movie.isOfCategory(cat1));
        assertFalse(movie.isOfCategory(cat2));

        movie.addCategory(cat1);

        assertTrue(movie.isOfCategory(cat1));
        assertFalse(movie.isOfCategory(null));
    }

    @Test
    public void equals() {
        movie.setId(123);
        movie.setTitle("Test");
        movie.setFile("C:\\test.dat");
        movie.setNote(Note.BAD);

        Movie movie2 = new MovieImpl();
        movie2.setId(123);
        movie2.setTitle("Test");
        movie2.setFile("C:\\test.dat");
        movie2.setNote(Note.BAD);

        Category cat1 = new CategoryImpl("Test 1");
        cat1.setId(12);

        Category cat2 = new CategoryImpl("Test 1");
        cat2.setId(12);

        movie.addCategory(cat1);
        movie.addCategory(cat2);

        movie2.addCategory(cat1);
        movie2.addCategory(cat2);

        assertFalse(movie.equals(null));
        assertFalse(movie2.equals(null));

        assertFalse(movie.equals(new CategoryImpl()));

        assertEquals(movie, movie2);
        assertEquals(movie2, movie);

        movie2.getCategories().clear();

        assertFalse(movie.equals(movie2));
        assertFalse(movie2.equals(movie));

        movie2.addCategory(cat1);
        movie2.addCategory(cat2);

        movie.setTitle("Test 1234");

        assertFalse(movie.equals(movie2));
        assertFalse(movie2.equals(movie));
    }

    @Test
    public void memento() {
        movie.setTitle("Title before");
        movie.setFile("File before");
        movie.setResolution(new Resolution("450x600"));

        movie.saveToMemento();

        movie.setTitle("Title after");
        movie.setFile("File after");
        movie.setResolution(new Resolution("600x450"));

        movie.restoreMemento();

        assertEquals("Title before", movie.getTitle());
        assertEquals("File before", movie.getFile());
        assertEquals("0450x0600", movie.getResolution().toString());
    }

    @Test
    public void getFileSize() {
        assertEquals(0, movie.getFileSize());

        File f = FileUtils.getAnExistingFile();

        movie.setFile(f.getAbsolutePath());

        assertEquals(f.length(), movie.getFileSize());
    }

    @Test
    public void getLastModifiedData() {
        assertNull(movie.getFileLastModifiedDate());

        File f = FileUtils.getAnExistingFile();

        movie.setFile(f.getAbsolutePath());

        assertEquals(f.lastModified(), movie.getFileLastModifiedDate().getTime());
    }
}