/******************************************************************************* * See the NOTICE file distributed with this work for additional information * regarding copyright ownership. * * 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 hr.fer.zemris.vhdllab.entity; import static hr.fer.zemris.vhdllab.entity.stub.FileInfoStub.DATA; import static hr.fer.zemris.vhdllab.entity.stub.FileInfoStub.TYPE; import static hr.fer.zemris.vhdllab.entity.stub.NamedEntityStub.NAME; import static hr.fer.zemris.vhdllab.entity.stub.NamedEntityStub.NAME_2; 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 hr.fer.zemris.vhdllab.entity.stub.ProjectStub; import hr.fer.zemris.vhdllab.entity.stub.ProjectStub2; import hr.fer.zemris.vhdllab.test.ValueObjectTestSupport; import org.apache.commons.collections.CollectionUtils; import org.junit.Before; import org.junit.Test; public class FileTest extends ValueObjectTestSupport { private File entity; @Before public void initEntity() throws Exception { Project project = new ProjectStub(); entity = (File) CollectionUtils.get(project.getFiles(), 0); } @Test public void basics() { File another = new File(); assertNull("project is set.", another.getProject()); assertNull("post remove project reference is set.", another .getPostRemoveProjectReference()); another.setProject(new ProjectStub2()); assertNotNull("project is null.", another.getProject()); another.setProject(null); assertNull("project not cleared.", another.getProject()); } @Test public void constructor() { File another = new File(NAME, TYPE, DATA); assertEquals("name not same.", NAME, another.getName()); assertEquals("type not same.", TYPE, another.getType()); assertEquals("data not same.", DATA, another.getData()); } @Test public void copyConstructorFile() { File another = new File(entity); assertEquals("name not same.", entity.getName(), another.getName()); assertEquals("type not same.", entity.getType(), another.getType()); assertEquals("data not same.", entity.getData(), another.getData()); assertNull("project not null.", another.getProject()); assertNull("post remove project reference not null.", another .getPostRemoveProjectReference()); } @Test public void copyConstructorFileBoolean() { File another = new File(entity, false); assertNull("project not null.", another.getProject()); another = new File(entity, true); assertTrue(entity.getProject() == another.getProject()); } @Test public void copyConstructorFileProject() { Project project = new Project("userId", "project_name"); File another = new File(entity, project); assertTrue(project == another.getProject()); another = new File(entity, null); assertNull(another.getProject()); } @Test public void setProject() { Project anotherProject = new ProjectStub2(); entity.setProject(anotherProject); assertEquals("projects not same.", anotherProject, entity.getProject()); assertNull("post remove project reference not null.", entity .getPostRemoveProjectReference()); entity.setProject(null); assertNull("project not null.", entity.getProject()); assertEquals("post remove project reference not set.", anotherProject, entity.getPostRemoveProjectReference()); } @Test public void getPostRemoveProjectReference() { entity.setProject(null); assertNotNull("post remove project reference is null.", entity .getPostRemoveProjectReference()); assertNull("post remove project reference not null.", entity .getPostRemoveProjectReference()); } @Test public void hashCodeAndEquals() { basicEqualsTest(entity); File another = new File(entity, true); assertEqualsAndHashCode(entity, another); another.setName(NAME_2); assertNotEqualsAndHashCode(entity, another); another = new File(entity, new ProjectStub2()); assertNotEqualsAndHashCode(entity, another); } @Test public void testToString() { toStringPrint(entity); } }