Package com.ibm.sbt.services.client.connections.activities

Source Code of com.ibm.sbt.services.client.connections.activities.ActivityEntryDuplicateTests

/*
* (C) Copyright IBM Corp. 2014
*
* 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 com.ibm.sbt.services.client.connections.activities;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.util.Date;

import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

import com.ibm.commons.xml.XMLException;
import com.ibm.sbt.security.authentication.AuthenticationException;
import com.ibm.sbt.services.client.ClientServicesException;
import com.ibm.sbt.services.client.connections.common.Member;
import com.ibm.sbt.services.endpoints.BasicEndpoint;
import com.ibm.sbt.test.lib.TestEnvironment;

/**
* @author mwallace
*
*/
public class ActivityEntryDuplicateTests extends BaseActivityServiceTest {
 
    @Test
    public void testMoveEntry() throws ClientServicesException, XMLException {
       
      activity = createActivity(createActivityTitle());
     
        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Entry Node");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        ActivityNode todoNode = new ActivityNode();
        todoNode.setActivityUuid(activity.getActivityUuid());
        todoNode.setTitle("Todo Node");
        todoNode.setType("TODO");
        activityService.createActivityNode(todoNode);

        ActivityNode sectionNode = new ActivityNode();
        sectionNode.setActivityUuid(activity.getActivityUuid());
        sectionNode.setTitle("Section Node");
        sectionNode.setType("SECTION");
        activityService.createActivityNode(sectionNode);

        //created 3 nodes
        activity = activityService.getActivity(activity.getActivityUuid());
        Assert.assertEquals(activity.getDescendants().size(), 3);
       
       
        //copy entry to todo + 1
        ActivityNode entryNode2 = activityService.copyNode(entryNode.getActivityNodeUuid(), todoNode.getActivityNodeUuid());
        //copy entry to section + 1
        ActivityNode entryNode3 = activityService.copyNode(entryNode2.getActivityNodeUuid(), sectionNode.getActivityNodeUuid());
        //copy todo to section (now has entry) + 2
        ActivityNode todoNode2 = activityService
                .copyNode(todoNode.getActivityNodeUuid(), sectionNode.getActivityNodeUuid());
       
       
       
        activity = activityService.getActivity(activity.getActivityUuid());
        Assert.assertEquals(activity.getDescendants().size(), 7);
       
    }
   
    @Test
    public void testMoveFieldChangeActivity() throws ClientServicesException, XMLException {
        // Create activity nodes

       
      

        Activity activityb = createActivity("DESTINATION "+ createActivityTitle());
       
        activity= createActivity("SOURCE "+ createActivityTitle());
       
       
        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Entry ActivityNode");
        entryNode.setContent("Entry Content");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        ActivityNode todoNode =  new ActivityNode();
        todoNode.setActivityUuid(activity.getActivityUuid());
        todoNode.setTitle("Todo ActivityNode");
        todoNode.setType("TODO");
        activityService.createActivityNode(todoNode);

        ActivityNode sectionNode =  new ActivityNode();
        sectionNode.setActivityUuid(activity.getActivityUuid());
        sectionNode.setTitle("Section ActivityNode");
        sectionNode.setType("SECTION");
        activityService.createActivityNode(sectionNode);

        activity = activityService.getActivity(activity.getActivityUuid());
        Assert.assertEquals(activity.getDescendants().size(), 3);
       
        ActivityNode entryNode2 = activityService.copyNode(entryNode.getActivityNodeUuid(), activityb.getActivityUuid());
        ActivityNode sectionNode2 = activityService.copyNode(sectionNode.getActivityNodeUuid(), activityb.getActivityUuid());
        ActivityNode todoNode2 = activityService.copyNode(todoNode.getActivityNodeUuid(), activityb.getActivityUuid());
       
       
        activity = activityService.getActivity(activity.getActivityUuid());
        Assert.assertEquals(activity.getDescendants().size(), 3);
        activityb = activityService.getActivity(activity.getActivityUuid());
        Assert.assertEquals(activityb.getDescendants().size(), 3);
       
        //refresh entities
        for (ActivityNode n: activity.getDescendants()) {
          if (n.getId().equals(entryNode.getId())) {
            entryNode = n;
          }
        }
        //refresh entities
        for (ActivityNode n: activityb.getDescendants()) {
          if (n.getId().equals(entryNode2.getId())) {
            entryNode = n;
          }
        }
       
        Assert.assertNotEquals(entryNode.getActivityNodeUuid(), entryNode2.getActivityNodeUuid());
        Assert.assertEquals(entryNode.getTitle(), entryNode2.getTitle());
        Assert.assertEquals(entryNode.getContent(), entryNode2.getContent());
       
    }

    @Test
    public void testcopyFieldToItself() throws ClientServicesException, XMLException {
        // Create activity nodes

        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Source ActivityNode");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        try {
            entryNode = activityService.copyNode(entryNode.getActivityNodeUuid(),
                    entryNode.getActivityNodeUuid());
        } catch (ClientServicesException ex) {
            assertEquals(400, ex.getResponseStatusCode());
            return;
        }
        fail();
    }

    @Test
    public void testMoveSection() throws ClientServicesException, XMLException {
        // Create activity nodes

        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Source ActivityNode");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        ActivityNode sectionNode = createActivityNode();
        sectionNode.setActivityUuid(activity.getActivityUuid());
        sectionNode.setTitle("Destination ActivityNode");
        sectionNode.setType("SECTION");
        activityService.createActivityNode(sectionNode);

        try {
            entryNode = activityService.copyNode(sectionNode.getActivityNodeUuid(),
                    entryNode.getActivityNodeUuid());
        } catch (ClientServicesException ex) {
            assertEquals(400, ex.getResponseStatusCode());
            return;
        }
        fail();
    }

    @Test
    public void testNotFound() throws ClientServicesException, XMLException {
        // Create activity nodes

        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        try {
            activityService.copyNode("1234", activity.getActivityUuid());
        } catch (ClientServicesException ex) {
            assertEquals(404, ex.getResponseStatusCode());
            return;
        }
        fail();
    }

    @Test
    public void testNotAuthorized() throws ClientServicesException, XMLException, AuthenticationException {
        // Create activity nodes

        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Source ActivityNode");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        activityService.getEndpoint().logout();
        ((BasicEndpoint) activityService.getEndpoint()).login(TestEnvironment.getSecondaryUsername(),
                TestEnvironment.getSecondaryUserPassword());

        try {
            activityService.copyNode(entryNode.getActivityNodeUuid(), activity.getActivityUuid());
        } catch (ClientServicesException ex) {
          ex.printStackTrace();
            assertEquals(403, ex.getResponseStatusCode());
            return;
        } finally {
            activityService.getEndpoint().logout();
            ((BasicEndpoint) activityService.getEndpoint()).login(TestEnvironment.getCurrentUsername(),
                    TestEnvironment.getCurrentUserPassword());
        }
        fail();
    }
   
    @Test
    public void testMoveReply() throws ClientServicesException, XMLException {

        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Source ActivityNode");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        ActivityNode todoNode = createActivityNode();
        todoNode.setActivityUuid(activity.getActivityUuid());
        todoNode.setTitle("Destination ActivityNode");
        todoNode.setType("TODO");
        activityService.createActivityNode(todoNode);

        ActivityNode replyNode = createActivityNode();
        replyNode.setActivityUuid(activity.getActivityUuid());
        replyNode.setTitle("Destination ActivityNode");
        replyNode.setType("REPLY");
        replyNode.setInReplyTo(entryNode);
        activityService.createActivityNode(replyNode);

        try {
            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(), activity.getActivityUuid());

            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(),
                    todoNode.getActivityNodeUuid());
            assertEquals(todoNode.getActivityNodeUuid(),
                    replyNode.getInReplyTo().getHref().replaceAll(".*Uuid=", ""));
            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(),
                    entryNode.getActivityNodeUuid());
            assertEquals(todoNode.getActivityNodeUuid(),
                    replyNode.getInReplyTo().getHref().replaceAll(".*Uuid=", ""));

        } catch (ClientServicesException ex) {
            assertEquals(400, ex.getResponseStatusCode());
            return;
        }
    }

    @Test
    public void testMoveReplyAdvanced() throws ClientServicesException, XMLException {
        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Source ActivityNode");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        ActivityNode todoNode = createActivityNode();
        todoNode.setActivityUuid(activity.getActivityUuid());
        todoNode.setTitle("Destination ActivityNode");
        todoNode.setType("TODO");
        activityService.createActivityNode(todoNode);

        ActivityNode replyNode = createActivityNode();
        replyNode.setActivityUuid(activity.getActivityUuid());
        replyNode.setTitle("Destination ActivityNode");
        replyNode.setType("REPLY");
        replyNode.setInReplyTo(entryNode);
        activityService.createActivityNode(replyNode);

        ActivityNode replyNode2 = createActivityNode();
        replyNode2.setActivityUuid(activity.getActivityUuid());
        replyNode2.setTitle("Destination ActivityNode");
        replyNode2.setType("REPLY");
        replyNode2.setInReplyTo(replyNode);

        activityService.createActivityNode(replyNode2);
        try {
            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(),
                    todoNode.getActivityNodeUuid());

            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(),
                    entryNode.getActivityNodeUuid());
            replyNode2 = activityService.copyNode(replyNode2.getActivityNodeUuid(),
                    entryNode.getActivityNodeUuid());
            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(),
                    replyNode2.getActivityNodeUuid());

            replyNode = activityService.getActivityNode(replyNode.getActivityNodeUuid());
            replyNode2 = activityService.getActivityNode(replyNode2.getActivityNodeUuid());

            replyNode = activityService.copyNode(replyNode.getActivityNodeUuid(), activity.getActivityUuid());
        } catch (ClientServicesException ex) {
            assertEquals(400, ex.getResponseStatusCode());
            return;
        }
    }

  @Test
  public void testcopyNodeACL() throws ClientServicesException {
   
    Activity activityA = new Activity();
    activityA.setTitle(createActivityTitle());
    activityA = activityService.createActivity(activityA);

    Activity activityB = new Activity();
    activityB.setTitle(createActivityTitle());
    activityB = activityService.createActivity(activityB);

    String memberId = getMemberId();
    Member member = activityB.addMember("person", memberId, "owner");

    ActivityNode srcActivityNode = new ActivityNode();
    srcActivityNode.setActivityUuid(activityA.getActivityUuid());
    srcActivityNode.setTitle("Source ActivityNode");
    srcActivityNode.setType("ENTRY");

    // Field 1
    TextField textField = new TextField();
    textField.setName("test_text");
    textField.setPosition(1000);
    textField.setSummary("Test_Text_Field");

    // Field 2
    Date date = new Date();
    date.setTime(1397650699000L);
    DateField dateField = new DateField();
    dateField.setName("test_date");
    dateField.setPosition(2000);
    dateField.setDate(date);
   
    // Field 3
    TextField hiddenTextField = new TextField();
    hiddenTextField.setName("test_hidden_text");
    hiddenTextField.setPosition(3000);
    hiddenTextField.setSummary("Hidden_Text_Field");
    hiddenTextField.setHidden(true);

    srcActivityNode.addField(textField);
    srcActivityNode.addField(hiddenTextField);
    srcActivityNode.addField(dateField);

    srcActivityNode = activityService.createActivityNode(srcActivityNode);
   
    int numFields = srcActivityNode.getFields().length;

    ActivityNode newNode = activityService.copyNode(srcActivityNode.getActivityNodeUuid(), activityB.getActivityUuid());

    BasicEndpoint endpoint = (BasicEndpoint)activityService.getEndpoint();
    try {
      endpoint.logout();
      endpoint.login(TestEnvironment.getSecondaryUsername(), TestEnvironment.getSecondaryUserPassword());
    } catch (AuthenticationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

    ActivityNode read = activityService.getActivityNode(newNode.getActivityNodeUuid());
    assertNotNull(read);

    Field movedTextField = read.getFieldByName(textField.getName());
    assertTrue(movedTextField instanceof TextField);
    assertEquals("test_text", movedTextField.getName());
    assertEquals(1000, ((TextField)movedTextField).getPosition());
    assertEquals("Test_Text_Field", ((TextField)movedTextField).getSummary());

    // Check date field
    Field movedDateField = read.getFieldByName(dateField.getName());
    assertTrue(movedDateField instanceof DateField);
    assertEquals("test_date", ((DateField)movedDateField).getName());
    assertEquals(2000, ((DateField)movedDateField).getPosition());
    assertNotNull(((DateField)movedDateField).getDate());
   
    // Check hidden text field
    Field movedHiddenTextField = read.getFieldByName(hiddenTextField.getName());
    assertTrue(movedHiddenTextField instanceof TextField);
    assertTrue(((TextField)movedHiddenTextField).isHidden());
    assertEquals("test_hidden_text", ((TextField)movedHiddenTextField).getName());
    assertEquals(3000, ((TextField)movedHiddenTextField).getPosition());
    assertEquals("Hidden_Text_Field", ((TextField)movedHiddenTextField).getSummary());
  }
 
 
    @Test
    public void testSimpleClone() throws Exception {
        // Create activity nodes

        activity = new Activity();
        activity.setTitle(createActivityTitle());
        activity = activityService.createActivity(activity);

        ActivityNode entryNode = new ActivityNode();
        entryNode.setActivityUuid(activity.getActivityUuid());
        entryNode.setTitle("Source ActivityNode");
        entryNode.setType("ENTRY");
        activityService.createActivityNode(entryNode);

        ActivityNode entryNode2 = activityService.copyNode(entryNode.getActivityNodeUuid(), activity.getActivityUuid());
       
        Assert.assertNotEquals(entryNode.getActivityNodeUuid(), entryNode2.getActivityNodeUuid());
       
        activity = activityService.getActivity(activity.getActivityUuid());
        Assert.assertEquals(activity.getDescendants().size(), 2);

    }
   

}
TOP

Related Classes of com.ibm.sbt.services.client.connections.activities.ActivityEntryDuplicateTests

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.