Package com.capra.integration.asana

Source Code of com.capra.integration.asana.AsanaTasksTest

package com.capra.integration.asana;

import com.capra.integration.asana.http.AsanaHttpClient;
import com.capra.integration.asana.model.*;
import com.capra.integration.asana.utils.AsanaIdentityNamePredicate;
import com.capra.integration.asana.utils.TestConfigurationSource;
import com.capra.integration.asana.utils.TestDataCleanUp;
import com.google.common.collect.Collections2;
import org.junit.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.capra.integration.asana.http.AdvancedAsanaUrlGenerator;
import com.capra.integration.asana.http.AsanaGoogleHttpClient;
import com.capra.integration.asana.http.SimpleAsanaUrlGenerator;

import java.util.Collection;
import java.util.Collections;

import static com.capra.integration.asana.utils.TestConfigurationSource.getTeamName;
import static com.capra.integration.asana.utils.TestConfigurationSource.getWorkspaceId;

/**
* This test contains all possible executions for tasks in asana.
* All tests here may be used as example for asana integration.
*
* @author lka@capraconsulting.no
* @since 19-09-2013 14:13
*/
public class AsanaTasksTest {

    private final AsanaHttpClient asanaHttpClient = new AsanaGoogleHttpClient(TestConfigurationSource.getConfiguration());
    private final TestDataCleanUp testDataCleanUp = new TestDataCleanUp(asanaHttpClient);

    @Before
    public void doBeforeTest() {}

    @After
    public void doAfterTest() {
        testDataCleanUp.clean();
    }

    @Test
    public void testNorwegianSpecialCharacters() {
        Long userId = asanaHttpClient.get(AsanaUser.class, SimpleAsanaUrlGenerator.me()).getId();

        String specialCharacters = "testNorwegianSpecialCharacters(\"æ - Æ : ø - Ø : å - Å\")";
        AsanaTaskCreate asanaTaskCreate = new AsanaTaskCreate(getWorkspaceId(), generateTaskName(specialCharacters));
        asanaTaskCreate.setAssignee(userId);

        AsanaTask asanaTask = asanaHttpClient.post(AsanaTask.class, asanaTaskCreate, SimpleAsanaUrlGenerator.tasks());
        Assert.assertNotNull(asanaTask);
        testDataCleanUp.addTask(asanaTask.getId());
    }

    @Test
    public void countMineTaskBeforeAndAfterCreatingNewTask() {
        Long userId = asanaHttpClient.get(AsanaUser.class, SimpleAsanaUrlGenerator.me()).getId();
        AsanaList asanaList = asanaHttpClient.get(AsanaList.class, AdvancedAsanaUrlGenerator.tasks().workspace(getWorkspaceId()).assignee(userId).build());
        Assert.assertNotNull(asanaList);
        Assert.assertNotNull(asanaList.getData());
        int countOfTheTasksBefore = asanaList.getData().size();

        AsanaTaskCreate asanaTaskCreate = new AsanaTaskCreate(getWorkspaceId(), generateTaskName("showMineTasks"));
        asanaTaskCreate.setAssignee(userId);
        AsanaTask asanaTask = asanaHttpClient.post(AsanaTask.class, asanaTaskCreate, AdvancedAsanaUrlGenerator.tasks().withFields(AsanaTask.ID).build());
        testDataCleanUp.addTask(asanaTask.getId());

        asanaList = asanaHttpClient.get(AsanaList.class, AdvancedAsanaUrlGenerator.tasks().workspace(getWorkspaceId()).assignee(userId).build());
        Assert.assertNotNull(asanaList);
        Assert.assertNotNull(asanaList.getData());
        int countOfTheTasksAfter = asanaList.getData().size();

        Assert.assertTrue(countOfTheTasksAfter > countOfTheTasksBefore);
    }

    @Test
    public void createNewTask() {
        AsanaTaskCreate asanaTaskCreate = new AsanaTaskCreate(getWorkspaceId(), generateTaskName("createNewTask"));
        AsanaTask asanaTask = asanaHttpClient.post(AsanaTask.class, asanaTaskCreate, SimpleAsanaUrlGenerator.tasks());
        Assert.assertNotNull(asanaTask);
        testDataCleanUp.addTask(asanaTask.getId());
    }

    @Test
    public void createNewTaskAndReturnOnlyId() {
        AsanaTaskCreate asanaTaskCreate = new AsanaTaskCreate(getWorkspaceId(), generateTaskName("createNewTaskAndReturnOnlyId"));
        AsanaTask asanaTask = asanaHttpClient.post(AsanaTask.class, asanaTaskCreate, AdvancedAsanaUrlGenerator.tasks().withFields(AsanaTask.ID).build());
        Assert.assertNotNull(asanaTask);
        Assert.assertNull(asanaTask.getName());
        testDataCleanUp.addTask(asanaTask.getId());
    }

    @Test
    public void testGetTaskWithExpandedProject() {
        AsanaList asanaList = asanaHttpClient.get(AsanaList.class, SimpleAsanaUrlGenerator.teams(getWorkspaceId()));
        Collection<AsanaIdentity> temas = Collections2.filter(asanaList.getData() ,new AsanaIdentityNamePredicate(getTeamName()));
        AsanaIdentity asanaTeam = temas.iterator().next();

        AsanaProjectCreate asanaProjectCreate = new AsanaProjectCreate("some project", asanaTeam.getId(), getWorkspaceId());
        AsanaProject project = asanaHttpClient.post(AsanaProject.class, asanaProjectCreate, SimpleAsanaUrlGenerator.projects());
        testDataCleanUp.addProject(project.getId());

        AsanaTaskCreate asanaTaskCreate = new AsanaTaskCreate(getWorkspaceId(), generateTaskName("GetTaskWithExpandedProject"));
        asanaTaskCreate.setProjects(Collections.singletonList(project.getId()));
        AsanaTask asanaTask = asanaHttpClient.post(AsanaTask.class, asanaTaskCreate, SimpleAsanaUrlGenerator.tasks());
        testDataCleanUp.addTask(asanaTask.getId());

        AsanaTask asanaTaskWithExpandedProject = asanaHttpClient.get(AsanaTask.class, AdvancedAsanaUrlGenerator.task(asanaTask.getId()).expand("projects").build());
        Assert.assertNotNull(asanaTaskWithExpandedProject);
    }

    private String generateTaskName(String methodName) {
        return "TestTask:" + getClass().getSimpleName() + "#" + methodName;
    }
}
TOP

Related Classes of com.capra.integration.asana.AsanaTasksTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.