blob: fa7b3062927e68004f30bcbf281f2c26e79737cf [file] [log] [blame]
/*********************************************************************************
* Copyright (c) 2015-2020 Robert Bosch GmbH and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Robert Bosch GmbH - initial API and implementation
********************************************************************************
*/
package org.eclipse.app4mc.amalthea.editors.sirius.design.services;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.eclipse.app4mc.amalthea.model.Amalthea;
import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
import org.eclipse.app4mc.amalthea.model.Label;
import org.eclipse.app4mc.amalthea.model.LabelAccess;
import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;
import org.eclipse.app4mc.amalthea.model.Runnable;
import org.eclipse.app4mc.amalthea.model.SWModel;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* @author daniel.kunz@de.bosch.com
*
*/
public class LabelServiceTest {
private LabelService labelService = null;
@Before
public void setUp() {
this.labelService = new LabelService();
}
@After
public void tearDown() {
this.labelService = null;
}
private SWModel createModelWithSWModel() {
Amalthea model = AmaltheaFactory.eINSTANCE.createAmalthea();
SWModel sw = AmaltheaFactory.eINSTANCE.createSWModel();
model.setSwModel(sw);
return sw;
}
private Runnable createRunnable(SWModel sw) {
Runnable run = AmaltheaFactory.eINSTANCE.createRunnable();
sw.getRunnables().add(run);
return run;
}
private Label createLabel(SWModel sw) {
Label label = AmaltheaFactory.eINSTANCE.createLabel();
sw.getLabels().add(label);
return label;
}
private LabelAccess createLabelAccess(Runnable run, Label label) {
LabelAccess la = AmaltheaFactory.eINSTANCE.createLabelAccess();
la.setData(label);
run.getRunnableItems().add(la);
return la;
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getRunnablesFromLabelAccesses(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetRunnablesFromLabelAccessesNull() {
List<Runnable> result = this.labelService.getRunnablesFromLabelAccesses(null);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getRunnablesFromLabelAccesses(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetRunnablesFromLabelAccessesEmptyAccesses() {
SWModel sw = createModelWithSWModel();
Label label = createLabel(sw);
List<Runnable> result = this.labelService.getRunnablesFromLabelAccesses(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getRunnablesFromLabelAccesses(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetRunnablesFromLabelAccessesOneAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
createLabelAccess(runnable, label);
List<Runnable> result = this.labelService.getRunnablesFromLabelAccesses(label);
assertNotNull(result);
assertFalse(result.isEmpty());
assertEquals(1, result.size());
assertSame(runnable, result.get(0));
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getReadAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetReadAccessRunnableForLabelNull() {
List<Runnable> result = this.labelService.getReadAccessRunnableForLabel(null);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getReadAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetReadAccessRunnableForLabelEmptyAccesses() {
SWModel sw = createModelWithSWModel();
Label label = createLabel(sw);
List<Runnable> result = this.labelService.getReadAccessRunnableForLabel(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getReadAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetReadAccessRunnableForLabelReadAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
LabelAccess la = createLabelAccess(runnable, label);
la.setAccess(LabelAccessEnum.READ);
List<Runnable> result = this.labelService.getReadAccessRunnableForLabel(label);
assertNotNull(result);
assertFalse(result.isEmpty());
assertEquals(1, result.size());
assertSame(runnable, result.get(0));
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getReadAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetReadAccessRunnableForLabelWriteAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
LabelAccess la = createLabelAccess(runnable, label);
la.setAccess(LabelAccessEnum.WRITE);
List<Runnable> result = this.labelService.getReadAccessRunnableForLabel(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getReadAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetReadAccessRunnableForLabelUndefinedAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
createLabelAccess(runnable, label);
List<Runnable> result = this.labelService.getReadAccessRunnableForLabel(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getWriteAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetWriteAccessRunnableForLabelNull() {
List<Runnable> result = this.labelService.getWriteAccessRunnableForLabel(null);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getWriteAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetWriteAccessRunnableForLabelEmptyAccesses() {
SWModel sw = createModelWithSWModel();
Label label = createLabel(sw);
List<Runnable> result = this.labelService.getWriteAccessRunnableForLabel(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getWriteAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetWriteAccessRunnableForLabelReadAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
LabelAccess la = createLabelAccess(runnable, label);
la.setAccess(LabelAccessEnum.READ);
List<Runnable> result = this.labelService.getWriteAccessRunnableForLabel(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getWriteAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetWriteAccessRunnableForLabelWriteAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
LabelAccess la = createLabelAccess(runnable, label);
la.setAccess(LabelAccessEnum.WRITE);
List<Runnable> result = this.labelService.getWriteAccessRunnableForLabel(label);
assertNotNull(result);
assertFalse(result.isEmpty());
assertEquals(1, result.size());
assertSame(runnable, result.get(0));
}
/**
* Test method for
* {@link org.eclipse.app4mc.amalthea.editors.sirius.design.services.LabelService#getWriteAccessRunnableForLabel(org.eclipse.app4mc.amalthea.model.Label)}
* .
*/
@Test
public void testGetWriteAccessRunnableForLabelUndefinedAccesses() {
SWModel sw = createModelWithSWModel();
Runnable runnable = createRunnable(sw);
Label label = createLabel(sw);
createLabelAccess(runnable, label);
List<Runnable> result = this.labelService.getWriteAccessRunnableForLabel(label);
assertNotNull(result);
assertTrue(result.isEmpty());
}
}