package org.nuxeo.labs.operations.usermanagement;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.nuxeo.ecm.automation.AutomationService;
import org.nuxeo.ecm.automation.OperationContext;
import org.nuxeo.ecm.automation.OperationException;
import org.nuxeo.ecm.automation.test.AutomationFeature;
import org.nuxeo.ecm.core.api.CoreSession;
import org.nuxeo.ecm.core.api.NuxeoGroup;
import org.nuxeo.ecm.core.test.DefaultRepositoryInit;
import org.nuxeo.ecm.core.test.annotations.Granularity;
import org.nuxeo.ecm.core.test.annotations.RepositoryConfig;
import org.nuxeo.ecm.platform.usermanager.UserManager;
import org.nuxeo.runtime.test.runner.Deploy;
import org.nuxeo.runtime.test.runner.Features;
import org.nuxeo.runtime.test.runner.FeaturesRunner;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
@RunWith(FeaturesRunner.class)
@Features(AutomationFeature.class)
@RepositoryConfig(init = DefaultRepositoryInit.class, cleanup = Granularity.METHOD)
@Deploy("org.nuxeo.labs.operation")
public class TestCreateGroupOp {
public static final String GROUPNAME = "groupname";
public static final String GROUPNAME2 = "groupname2";
public static final String GROUPLABEL = "grouplabel";
public static final String GROUPLABEL2 = "grouplabel2";
@Inject
protected CoreSession session;
@Inject
protected AutomationService automationService;
@Inject
protected UserManager userManager;
@Test
public void testCreate() throws OperationException {
OperationContext ctx = new OperationContext(session);
Map<String, Object> params = new HashMap<>();
params.put("groupname", GROUPNAME);
params.put("grouplabel", GROUPLABEL);
automationService.run(ctx, CreateOrUpdateGroupOp.ID, params);
NuxeoGroup group = userManager.getGroup(GROUPNAME);
Assert.assertNotNull(group);
Assert.assertEquals(group.getLabel(),GROUPLABEL);
}
@Test
public void testUpdate() throws OperationException {
OperationContext ctx = new OperationContext(session);
Map<String, Object> params = new HashMap<>();
params.put("groupname", GROUPNAME2);
params.put("grouplabel", GROUPLABEL);
automationService.run(ctx, CreateOrUpdateGroupOp.ID, params);
NuxeoGroup group = userManager.getGroup(GROUPNAME2);
Assert.assertNotNull(group);
Assert.assertEquals(group.getLabel(),GROUPLABEL);
params.put("grouplabel", GROUPLABEL2);
automationService.run(ctx, CreateOrUpdateGroupOp.ID, params);
group = userManager.getGroup(GROUPNAME2);
Assert.assertNotNull(group);
Assert.assertEquals(group.getLabel(),GROUPLABEL2);
}
}