blob: cba41fc8d84b3670bc96e1ee291876642817c21d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2020 Christian Pontesegger and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Christian Pontesegger - initial API and implementation
*******************************************************************************/
package org.eclipse.skills.model;
import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.eclipse.skills.service.ISkillService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
public class TaskTest {
private ITask fTask;
private ISkillService fSkillService;
@BeforeEach
public void setupFixture() {
fTask = ISkillsFactory.eINSTANCE.createTask();
fSkillService = mock(ISkillService.class);
}
@Test
public void createTask() {
assertNotNull(fTask);
}
@Test
@DisplayName("Report to service when requirement is met")
public void reportWhenRequirementsAreMet() {
final IAndDependency requirement = ISkillsFactory.eINSTANCE.createAndDependency();
fTask.setSkillService(fSkillService);
fTask.setRequirement(requirement);
requirement.activate();
verify(fSkillService).reportTaskReady(fTask);
}
@Test
@DisplayName("getId() for task without quest")
public void getIdForTaskWithoutQuest() {
fTask.setTitle("Simple task");
assertEquals("_Simple_task", fTask.getId());
}
@Test
@DisplayName("getId() with special characters")
public void getIdWithSpecialCharacters() {
fTask.setTitle("Special stuff: !ยง%&$/");
assertEquals("_Special_stuff________", fTask.getId());
}
@Test
@DisplayName("getId() for task within quest")
public void getIdForTaskWithinQuest() {
final IQuest quest = ISkillsFactory.eINSTANCE.createQuest();
quest.setTitle("My quest");
quest.getTasks().add(fTask);
fTask.setTitle("Simple task");
assertEquals("My_quest_Simple_task", fTask.getId());
}
@Test
@DisplayName("getId() for subtask within quest")
public void getIdForSubtaskWithinQuest() {
final IQuest quest = ISkillsFactory.eINSTANCE.createQuest();
quest.setTitle("My quest");
final ITask mainTask = ISkillsFactory.eINSTANCE.createTask();
mainTask.setTitle("Main Task");
mainTask.getTasks().add(fTask);
quest.getTasks().add(mainTask);
fTask.setTitle("Simple task");
assertEquals("My_quest_Simple_task", fTask.getId());
}
}