Package com.sparc.knappsack.components.services

Source Code of com.sparc.knappsack.components.services.OrganizationServiceIT

package com.sparc.knappsack.components.services;

import com.sparc.knappsack.components.entities.*;
import com.sparc.knappsack.enums.ApplicationType;
import com.sparc.knappsack.enums.SortOrder;
import com.sparc.knappsack.enums.StorageType;
import com.sparc.knappsack.enums.UserRole;
import com.sparc.knappsack.forms.OrganizationForm;
import com.sparc.knappsack.models.OrganizationModel;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.ArrayList;
import java.util.List;

import static org.junit.Assert.*;

public class OrganizationServiceIT extends AbstractServiceTests {

    @Autowired(required = true)
    private OrganizationService organizationService;

    @Autowired
    private StorageConfigurationService storageConfigurationService;

    @Autowired(required = true)
    private CategoryService categoryService;

    @Autowired
    private GroupService groupService;

    @Autowired
    private ApplicationService applicationService;

    @Autowired
    private UserService userService;

    @Test
    public void updateTest() {
        OrganizationForm organizationForm = getOrganizationForm();

        organizationService.createOrganization(organizationForm);
        Organization organization = organizationService.getByName("Test Organization");
        organization.setName("New Organization");
        organizationService.update(organization);
        organization = organizationService.getByName("New Organization");
        assertNotNull(organization);
    }

    @Test
    public void createOrganizationTest() {
        OrganizationForm organizationForm = getOrganizationForm();

        organizationService.createOrganization(organizationForm);
        Organization organization = organizationService.getByName("Test Organization");
        assertNotNull(organization);
    }

    @Test
    public void editOrganizationTest() {
        OrganizationForm organizationForm = getOrganizationForm();

        organizationService.createOrganization(organizationForm);
        Organization organization = organizationService.getByName("Test Organization");

        OrganizationForm newOrganizationForm = new OrganizationForm();
        newOrganizationForm.setName("Test Organization 2");
        newOrganizationForm.setId(organization.getId());
        organizationService.editOrganization(newOrganizationForm);
        Organization updatedOrganization = organizationService.getByName("Test Organization 2");
        assertNotNull(updatedOrganization);
        assertEquals(organization.getId(), updatedOrganization.getId());
    }

    @Test
    public void addOrganization() {
        Organization organization = new Organization();
        organization.setName("Test Organization Add");
        OrgStorageConfig orgStorageConfig = new OrgStorageConfig();
        orgStorageConfig.setOrganization(organization);
        orgStorageConfig.setPrefix("add_test");
        List<StorageConfiguration> storageConfigurations = new ArrayList<StorageConfiguration>();
        storageConfigurations.add(getStorageConfiguration());
        orgStorageConfig.setStorageConfigurations(storageConfigurations);
        organization.setOrgStorageConfig(orgStorageConfig);
        organizationService.add(organization);
        organizationService.getAll();
        Organization retrievedOrganization = organizationService.getByName("Test Organization Add");
        assertNotNull(retrievedOrganization);
        assertNotNull(retrievedOrganization.getDomainConfiguration());
        assertTrue(retrievedOrganization.getDomainConfiguration().getApplicationLimit() == 2);
        assertTrue(retrievedOrganization.getDomainConfiguration().getApplicationVersionLimit() == 5);
        assertTrue(retrievedOrganization.getDomainConfiguration().getUserLimit() == 10);
        assertTrue(retrievedOrganization.getDomainConfiguration().getMegabyteStorageLimit() == 500);
        assertTrue(retrievedOrganization.getDomainConfiguration().getMegabyteBandwidthLimit() == 2048);
        assertFalse(retrievedOrganization.getDomainConfiguration().isDisabledDomain());
    }

    @Test
    public void deleteOrganization() {
        Organization organization = getOrganization();

        Category category = new Category();
        category.setOrganization(organization);
        category.setDescription("Test Category");
        category.setName("Test Category");
        category.setStorageConfiguration(organization.getOrgStorageConfig().getStorageConfigurations().get(0));

        categoryService.add(category);

        AppFile categoryIcon = new AppFile();
        categoryIcon.setName("Category Icon");
        categoryIcon.setRelativePath("relativePath");
        categoryIcon.setStorable(category);
        category.setIcon(categoryIcon);

        organization.getCategories().add(category);

        categoryService.update(category);

        Group group = new Group();
        group.setName("Test Group");
        group.setOrganization(organization);

        organization.getGroups().add(group);

        groupService.add(group);

        Application application = new Application();
        application.setApplicationType(ApplicationType.CHROME);
        application.setCategory(category);
        application.setStorageConfiguration(organization.getOrgStorageConfig().getStorageConfigurations().get(0));
        application.setOwnedGroup(group);
        List<Application> applications = new ArrayList<Application>();
        applications.add(application);

        group.setOwnedApplications(applications);

        applicationService.add(application);

        Organization retrievedOrganization = organizationService.getByName("Test Organization");
        assertNotNull(applicationService.get(application.getId()));
        assertNotNull(retrievedOrganization);
        assertNotNull(retrievedOrganization.getId());
        organizationService.delete(retrievedOrganization.getId());
        retrievedOrganization = organizationService.getByName("Test Organization");
        assertNull(retrievedOrganization);
        assertTrue(groupService.getAll().isEmpty());
        assertNull(applicationService.get(application.getId()));
    }

    @Test
    public void modelToEntityMappingTest() {

        OrganizationForm organizationForm = getOrganizationForm();

        organizationService.createOrganization(organizationForm);
        Organization organization = organizationService.getByName("Test Organization");

        OrganizationModel newOrganizationModel = new OrganizationModel();

        organizationService.mapOrgToOrgModel(organization, newOrganizationModel);
        assertEquals(organization.getName(), newOrganizationModel.getName());
    }

    @Test
    public void removeUserFromOrganizationTest() {
        OrganizationForm organizationForm = getOrganizationForm();

        organizationService.createOrganization(organizationForm);
        Organization organization = organizationService.getByName("Test Organization");
        assertNotNull(organization);

        User user = getUserWithSecurityContext();
        userService.add(user);
        user = userService.getByEmail(user.getEmail());
        assertNotNull(user);
        userService.addUserToOrganization(user, organization.getId(), UserRole.ROLE_ORG_USER);
        List<Organization> organizations = userService.getOrganizations(user, SortOrder.ASCENDING);
        assertTrue(organizations.size() == 1);
        organizationService.removeUserFromOrganization(organization.getId(), user.getId());
        organizations = userService.getOrganizations(user, SortOrder.ASCENDING);
        assertTrue(organizations.size() == 0);
    }

    private OrganizationForm getOrganizationForm() {
        OrganizationForm organizationForm = new OrganizationForm();
        organizationForm.setStoragePrefix("test_prefix");
        organizationForm.setName("Test Organization");
        organizationForm.setStorageConfigurationId(getStorageConfiguration().getId());

        return organizationForm;
    }

    private StorageConfiguration getStorageConfiguration() {
        StorageConfiguration storageConfiguration = new LocalStorageConfiguration();
        storageConfiguration.setBaseLocation("/test");
        storageConfiguration.setName("Local Storage Config");
        storageConfiguration.setStorageType(StorageType.LOCAL);

        storageConfigurationService.add(storageConfiguration);
        List<StorageConfiguration> storageConfigurations = storageConfigurationService.getAll();
        return storageConfigurations.get(0);
    }

    private Organization getOrganization() {
        Organization organization = new Organization();
        organization.setName("Test Organization");

        LocalStorageConfiguration localStorageConfiguration = new LocalStorageConfiguration();
        localStorageConfiguration.setBaseLocation("/path");
        localStorageConfiguration.setName("Local Storage Configuration");
        localStorageConfiguration.setStorageType(StorageType.LOCAL);

        OrgStorageConfig orgStorageConfig = new OrgStorageConfig();
        orgStorageConfig.getStorageConfigurations().add(localStorageConfiguration);
        orgStorageConfig.setPrefix("testPrefix");
        orgStorageConfig.setOrganization(organization);
        organization.setOrgStorageConfig(orgStorageConfig);

        organizationService.add(organization);

        return organization;
    }

}
TOP

Related Classes of com.sparc.knappsack.components.services.OrganizationServiceIT

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.