/*
* © 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 java.util.HashMap;
import java.util.Map;
import org.junit.Ignore;
import org.junit.Test;
import com.ibm.sbt.services.client.ClientServicesException;
import com.ibm.sbt.services.client.base.datahandlers.EntityList;
import com.ibm.sbt.test.lib.TestEnvironment;
/**
* @author mwallace
*
*/
public class ActivityFieldPerformanceTest extends BaseActivityServiceTest {
@Test
@org.junit.Ignore("Issue with Mime Depdency")
public void testCreateLargeActivity() throws ClientServicesException {
Activity activity = createActivity();
this.activity = null;
System.out.println(activity.getActivityUuid());
for (int i=0; i<100; i++) {
ActivityNode activityNode = new ActivityNode();
activityNode.setActivityUuid(activity.getActivityUuid());
activityNode.setTitle("Entry"+i);
activityNode.setType(ActivityNode.TYPE_ENTRY);
for (int j=0; j<10; j++) {
TextField textField = new TextField();
textField.setName("Field"+j);
textField.setSummary("Field"+j);
activityNode.addField(textField);
}
activityService.createActivityNode(activityNode);
System.out.print(".");
}
System.out.println("\nCreated 100 entries");
StringBuilder sb = new StringBuilder();
int count = 0;
try {
for (int i=0; i<100; i++) {
for (int j=0; j<10; j++) {
//createActivityNode(activity.getActivityUuid(), "Entry" + count);
TextField textField = new TextField();
textField.setName("Field" + count);
textField.setSummary("Field" + count);
activity.addField(textField);
System.out.print(".");
count++;
if ((count % 100) == 0) System.out.println("");
}
long startUpdate = System.currentTimeMillis();
activity.update();
long durationUpdate = System.currentTimeMillis() - startUpdate;
long startRead = System.currentTimeMillis();
activity = activityService.getActivity(activity.getActivityUuid());
long durationRead = System.currentTimeMillis() - startRead;
sb.append(count).append(",").append(durationUpdate).append(",").append(durationRead).append("\n");
}
System.out.println(count);
} catch (Exception e) {
e.printStackTrace();
}
long start = System.currentTimeMillis();
activity = activityService.getActivity(activity.getActivityUuid());
long duration = System.currentTimeMillis() - start;
System.out.println("Reading activity with " + activity.getFields().length + " fields, takes: " + duration + "(ms)");
start = System.currentTimeMillis();
activity.setContent("Updated: "+System.currentTimeMillis());
activity.update();
duration = System.currentTimeMillis() - start;
System.out.println("Saving activity with " + count + " fields, takes: " + duration + "(ms)");
System.out.println(sb.toString());
}
@Test
@org.junit.Ignore("Issue with Mime Depdency")
public void testUpdateActivity() throws ClientServicesException {
String activityUuid = System.getProperty("activityUuid");
long start = System.currentTimeMillis();
Activity activity = activityService.getActivity(activityUuid);
long duration = System.currentTimeMillis() - start;
System.out.println("Reading activity with " + activity.getFields().length + " fields, takes: " + duration + "(ms)");
start = System.currentTimeMillis();
activity.setContent("Updated: "+System.currentTimeMillis());
activity.update();
duration = System.currentTimeMillis() - start;
System.out.println("Saving activity with " + activity.getFields().length + " fields, takes: " + duration + "(ms)");
}
}