Package ro.isdc.wro.model

Source Code of ro.isdc.wro.model.TestWroModel

/*
* Copyright (c) 2010. All rights reserved.
*/
package ro.isdc.wro.model;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

import java.io.InputStream;
import java.util.Arrays;
import java.util.Collections;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import ro.isdc.wro.config.Context;
import ro.isdc.wro.model.factory.WroModelFactory;
import ro.isdc.wro.model.factory.XmlModelFactory;
import ro.isdc.wro.model.group.Group;
import ro.isdc.wro.model.group.InvalidGroupNameException;
import ro.isdc.wro.model.resource.Resource;


/**
* Test class for WroModel..
*
* @author Alex Objelean
* @created Created on Jan 6, 2010
*/
public class TestWroModel {
  private WroModel victim;
  private WroModelFactory factory;

  @BeforeClass
  public static void onBeforeClass() {
    assertEquals(0, Context.countActive());
  }

  @AfterClass
  public static void onAfterClass() {
    assertEquals(0, Context.countActive());
  }

  @Before
  public void setUp() {
    final Context context = Context.standaloneContext();
    Context.set(context);
    victim = buildValidModel();
  }

  @After
  public void tearDown() {
    Context.unset();
    factory.destroy();
  }

  @Test
  public void testGetExistingGroup() {
    Assert.assertFalse(victim.getGroups().isEmpty());
    final Group group = victim.getGroupByName("g1");
    // create a copy of original list
    assertEquals(1, group.getResources().size());
  }

  @Test(expected = InvalidGroupNameException.class)
  public void testGetInvalidGroup() {
    assertFalse(victim.getGroups().isEmpty());
    victim.getGroupByName("INVALID_GROUP");
  }

  /**
   * @return a valid {@link WroModel} pre populated with some valid resources.
   */
  private WroModel buildValidModel() {
    factory = new XmlModelFactory() {
      @Override
      protected InputStream getModelResourceAsStream() {
        return getClass().getResourceAsStream("wro.xml");
      }
    };
    // the uriLocator factory doesn't have any locators set...
    final WroModel model = factory.create();
    return model;
  }

  @Test
  public void shouldNotReturnDuplicatedResources() {
    final WroModel model = new WroModel();

    assertEquals(0, new WroModelInspector(model).getAllUniqueResources().size());

    model.addGroup(new Group("one").addResource(Resource.create("/one.js"))).addGroup(
        new Group("two").addResource(Resource.create("/one.js")));
    assertEquals(1, new WroModelInspector(model).getAllUniqueResources().size());
  }

  @Test(expected = NullPointerException.class)
  public void cannotMergeNullModel() {
    victim.merge(null);
  }

  @Test
  public void shouldMergeEmptyModel() {
    victim.merge(new WroModel());
    assertEquals(buildValidModel(), victim);
  }

  @Test
  public void shouldMergeNotEmptyModel() {
    victim.merge(new WroModel().addGroup(new Group("anEmptyGroup")));
    assertEquals(Arrays.asList("anEmptyGroup", "g1", "g2", "g3"), new WroModelInspector(victim).getGroupNames());
  }

  @Test(expected = NullPointerException.class)
  public void cannotSetNullGroups() {
    victim.setGroups(null);
  }

  @Test
  public void shouldSetValidGroups() {
    victim.setGroups(Collections.EMPTY_LIST);
    assertEquals(0, victim.getGroups().size());
  }
}
TOP

Related Classes of ro.isdc.wro.model.TestWroModel

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.