Package org.zanata.webtrans.server.rpc

Source Code of org.zanata.webtrans.server.rpc.SaveOptionsHandlerTest

package org.zanata.webtrans.server.rpc;

import static org.hamcrest.MatcherAssert.assertThat;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import lombok.extern.slf4j.Slf4j;

import org.dbunit.operation.DatabaseOperation;
import org.hamcrest.Matchers;
import org.jboss.seam.security.management.JpaIdentityStore;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.zanata.ZanataDbunitJpaTest;
import org.zanata.dao.AccountDAO;
import org.zanata.model.HAccount;
import org.zanata.model.HAccountOption;
import org.zanata.seam.SeamAutowire;
import org.zanata.webtrans.shared.model.UserOptions;
import org.zanata.webtrans.shared.rpc.SaveOptionsAction;
import org.zanata.webtrans.shared.rpc.SaveOptionsResult;

/**
* @author Patrick Huang <a
*         href="mailto:pahuang@redhat.com">pahuang@redhat.com</a>
*/
@Test(groups = { "jpa-tests" })
@Slf4j
public class SaveOptionsHandlerTest extends ZanataDbunitJpaTest {
    private SaveOptionsHandler handler;
    private HAccount authenticatedAccount;

    @Override
    protected void prepareDBUnitOperations() {
        beforeTestOperations.add(new DataSetOperation(
                "org/zanata/test/model/AccountData.dbunit.xml",
                DatabaseOperation.CLEAN_INSERT));

        afterTestOperations.add(new DataSetOperation(
                "org/zanata/test/model/ClearAllTables.dbunit.xml",
                DatabaseOperation.DELETE_ALL));
    }

    @BeforeMethod
    public void beforeMethod() {
        AccountDAO accountDAO = new AccountDAO(getSession());
        authenticatedAccount = getEm().find(HAccount.class, 1L);
        // @formatter:off
      handler = SeamAutowire.instance()
            .reset()
            .use(JpaIdentityStore.AUTHENTICATED_USER, authenticatedAccount)
            .use("accountDAO", accountDAO)
            .ignoreNonResolvable()
            .autowire(SaveOptionsHandler.class);
      // @formatter:on

    }

    @Test
    public void testExecute() throws Exception {
        HashMap<UserOptions, String> configMap =
                new HashMap<UserOptions, String>();
        configMap.put(UserOptions.DisplayButtons, Boolean.toString(true));
        configMap.put(UserOptions.EditorPageSize, Integer.toString(25));
        configMap.put(UserOptions.EnterSavesApproved, Boolean.toString(true));

        SaveOptionsAction action = new SaveOptionsAction(configMap);

        SaveOptionsResult result = handler.execute(action, null);

        assertThat(result.isSuccess(), Matchers.equalTo(true));
        List<HAccountOption> accountOptions =
                getEm().createQuery("from HAccountOption").getResultList();

        assertThat(accountOptions, Matchers.hasSize(configMap.size()));
        Map<String, HAccountOption> editorOptions =
                authenticatedAccount.getEditorOptions();

        assertThat(editorOptions.values(),
                Matchers.containsInAnyOrder(accountOptions.toArray()));

        handler.execute(action, null); // save again should override previous
                                       // value
        accountOptions =
                getEm().createQuery("from HAccountOption").getResultList();

        assertThat(accountOptions, Matchers.hasSize(configMap.size()));
        assertThat(editorOptions.values(),
                Matchers.containsInAnyOrder(accountOptions.toArray()));
    }

    @Test
    public void testRollback() throws Exception {
        handler.rollback(null, null, null);
    }
}
TOP

Related Classes of org.zanata.webtrans.server.rpc.SaveOptionsHandlerTest

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.