com.liferay.dynamic.data.mapping.internal.test.util.DDMFixture.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.dynamic.data.mapping.internal.test.util.DDMFixture.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.dynamic.data.mapping.internal.test.util;

import com.liferay.dynamic.data.mapping.model.DDMStructure;
import com.liferay.dynamic.data.mapping.service.DDMStructureLocalService;
import com.liferay.dynamic.data.mapping.service.DDMStructureLocalServiceUtil;
import com.liferay.portal.bean.BeanPropertiesImpl;
import com.liferay.portal.kernel.bean.BeanProperties;
import com.liferay.portal.kernel.bean.BeanPropertiesUtil;
import com.liferay.portal.kernel.language.Language;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
import com.liferay.portal.kernel.util.ResourceBundleUtil;

import java.util.ResourceBundle;

import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;

import org.powermock.api.mockito.PowerMockito;

/**
 * @author Andr de Oliveira
 */
public class DDMFixture {

    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);

        setUpBeanPropertiesUtil();
        setUpDDMStructureLocalServiceUtil();
        setUpLanguageUtil();

        ClassLoader classLoader = Mockito.mock(ClassLoader.class);

        setUpPortalClassLoaderUtil(classLoader);
        setUpResourceBundleUtil(classLoader);
    }

    public void tearDown() {
        tearDownBeanPropertiesUtil();
        tearDownLanguage();
        tearDownPortalClassLoaderUtil();
    }

    public void whenDDMStructureLocalServiceFetchStructure(DDMStructure ddmStructure) {

        Mockito.doReturn(ddmStructure).when(_ddmStructureLocalService)
                .fetchStructure(ddmStructure.getStructureId());
    }

    protected void setUpBeanPropertiesUtil() {
        _beanProperties = BeanPropertiesUtil.getBeanProperties();

        BeanPropertiesUtil beanPropertiesUtil = new BeanPropertiesUtil();

        beanPropertiesUtil.setBeanProperties(new BeanPropertiesImpl());
    }

    protected void setUpDDMStructureLocalServiceUtil() throws Exception {
        PowerMockito.spy(DDMStructureLocalServiceUtil.class);

        PowerMockito.doReturn(_ddmStructureLocalService).when(DDMStructureLocalServiceUtil.class, "getService");
    }

    protected void setUpLanguageUtil() {
        _language = LanguageUtil.getLanguage();

        LanguageUtil languageUtil = new LanguageUtil();

        languageUtil.setLanguage(Mockito.mock(Language.class));
    }

    protected void setUpPortalClassLoaderUtil(ClassLoader classLoader) {
        _classLoader = PortalClassLoaderUtil.getClassLoader();

        PortalClassLoaderUtil.setClassLoader(classLoader);
    }

    protected void setUpResourceBundleUtil(ClassLoader classLoader) {
        PowerMockito.mockStatic(ResourceBundleUtil.class);

        ResourceBundle resourceBundle = Mockito.mock(ResourceBundle.class);

        PowerMockito.when(ResourceBundleUtil.getBundle("content.Language", LocaleUtil.BRAZIL, classLoader))
                .thenReturn(resourceBundle);

        PowerMockito.when(ResourceBundleUtil.getBundle("content.Language", LocaleUtil.US, classLoader))
                .thenReturn(resourceBundle);
    }

    protected void tearDownBeanPropertiesUtil() {
        BeanPropertiesUtil beanPropertiesUtil = new BeanPropertiesUtil();

        beanPropertiesUtil.setBeanProperties(_beanProperties);
    }

    protected void tearDownLanguage() {
        LanguageUtil languageUtil = new LanguageUtil();

        languageUtil.setLanguage(_language);
    }

    protected void tearDownPortalClassLoaderUtil() {
        PortalClassLoaderUtil.setClassLoader(_classLoader);
    }

    private BeanProperties _beanProperties;
    private ClassLoader _classLoader;

    @Mock
    private DDMStructureLocalService _ddmStructureLocalService;

    private Language _language;

}