Package net.sf.uadetector.internal.data.domain

Source Code of net.sf.uadetector.internal.data.domain.BrowserBuilderTest

/*******************************************************************************
* Copyright 2012 André Rouél
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package net.sf.uadetector.internal.data.domain;

import java.util.SortedSet;
import java.util.TreeSet;

import net.sf.qualitycheck.exception.IllegalEmptyArgumentException;
import net.sf.qualitycheck.exception.IllegalNegativeArgumentException;
import net.sf.qualitycheck.exception.IllegalNullArgumentException;
import net.sf.uadetector.UserAgentFamily;
import net.sf.uadetector.internal.data.domain.Browser.Builder;

import static org.fest.assertions.Assertions.assertThat;
import org.junit.Test;

public class BrowserBuilderTest {

  @Test(expected = IllegalNullArgumentException.class)
  public void construct_builder_null() {
    new Builder((Builder) null);
  }

  @Test
  public void construct_copy_successful() {
    final BrowserType browserType = new BrowserType.Builder().setId("1").setName("browser type test").build();
    final SortedSet<OperatingSystemPattern> osPatternSet = new TreeSet<OperatingSystemPattern>();
    final OperatingSystem operatingSystem = new OperatingSystem(1, "n1", "f1", "iu1", osPatternSet, "p1", "pu1", "u1", "i1");
    final SortedSet<BrowserPattern> patternSet = new TreeSet<BrowserPattern>();

    final Browser.Builder original = new Browser.Builder();
    original.setFamilyName(UserAgentFamily.CHROME.getName());
    original.setIcon("i1");
    original.setId(1);
    original.setInfoUrl("iu1");
    original.setOperatingSystem(operatingSystem);
    original.setPatterns(patternSet);
    original.setProducer("p1");
    original.setProducerUrl("pu1");
    original.setType(browserType);
    original.setTypeId(1);
    original.setUrl("u1");

    final Builder copy1 = new Browser.Builder(original);
    assertThat(copy1.getFamily()).isEqualTo(UserAgentFamily.CHROME);
    assertThat(copy1.getIcon()).isEqualTo("i1");
    assertThat(copy1.getInfoUrl()).isEqualTo("iu1");
    assertThat(copy1.getOperatingSystem()).isSameAs(operatingSystem);
    assertThat(copy1.getPatterns()).isEqualTo(patternSet);
    assertThat(copy1.getProducer()).isEqualTo("p1");
    assertThat(copy1.getProducerUrl()).isEqualTo("pu1");
    assertThat(copy1.getType().getName()).isEqualTo("browser type test");
    assertThat(copy1.getType().getId()).isEqualTo(1);
    assertThat(copy1.getTypeId()).isEqualTo(1);
    assertThat(copy1.getUrl()).isEqualTo("u1");

    final Builder copy2 = original.copy();
    assertThat(copy2.getFamily()).isEqualTo(UserAgentFamily.CHROME);
    assertThat(copy2.getIcon()).isEqualTo("i1");
    assertThat(copy2.getInfoUrl()).isEqualTo("iu1");
    assertThat(copy2.getOperatingSystem()).isSameAs(operatingSystem);
    assertThat(copy2.getPatterns()).isEqualTo(patternSet);
    assertThat(copy2.getProducer()).isEqualTo("p1");
    assertThat(copy2.getProducerUrl()).isEqualTo("pu1");
    assertThat(copy2.getType().getName()).isEqualTo("browser type test");
    assertThat(copy2.getType().getId()).isEqualTo(1);
    assertThat(copy2.getTypeId()).isEqualTo(1);
    assertThat(copy2.getUrl()).isEqualTo("u1");
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setFamily_null() {
    new Browser.Builder().setFamilyName(null);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setIcon_null() {
    new Browser.Builder().setIcon(null);
  }

  @Test(expected = NumberFormatException.class)
  public void setId_alphaString() {
    new Browser.Builder().setId("abc");
  }

  @Test(expected = IllegalEmptyArgumentException.class)
  public void setId_emptyString() {
    new Browser.Builder().setId("");
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setId_null() {
    new Browser.Builder().setId(null);
  }

  @Test
  public void setId_numericString() {
    final BrowserType type = new BrowserType.Builder().setId("13746").setName("browser type test").build();

    final Builder builder1 = new Builder();
    builder1.setId("378246");
    builder1.setFamilyName(UserAgentFamily.CHROMIUM.getName());
    builder1.setIcon("i1");
    builder1.setInfoUrl("iu1");
    builder1.setPatterns(new TreeSet<BrowserPattern>());
    builder1.setProducer("p1");
    builder1.setProducerUrl("pu1");
    builder1.setType(type).setUrl("u1");
    final Browser b1 = builder1.build();

    final Builder builder2 = new Builder();
    builder2.setId("378246");
    builder2.setFamilyName(UserAgentFamily.CHROMIUM.getName());
    builder2.setIcon("i1");
    builder2.setInfoUrl("iu1");
    builder2.setPatterns(new TreeSet<BrowserPattern>());
    builder2.setProducer("p1");
    builder2.setProducerUrl("pu1");
    builder2.setType(type).setUrl("u1");
    final Browser b2 = builder2.build();

    assertThat(b1.equals(b2)).isTrue();
  }

  @Test(expected = IllegalNegativeArgumentException.class)
  public void setId_toSmall() {
    new Browser.Builder().setId(-1);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setInfoUrl_null() {
    new Browser.Builder().setInfoUrl(null);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setOperatingSystem_null() {
    new Browser.Builder().setOperatingSystem(null);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setPatternSet_null() {
    new Browser.Builder().setPatterns(null);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setProducer_null() {
    new Browser.Builder().setProducer(null);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setProducerUrl_null() {
    new Browser.Builder().setProducerUrl(null);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setType_null() {
    new Browser.Builder().setType(null);
  }

  @Test(expected = IllegalEmptyArgumentException.class)
  public void setTypeId_emptyString() {
    new Browser.Builder().setTypeId("");
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setTypeId_null() {
    new Browser.Builder().setTypeId(null);
  }

  @Test(expected = IllegalNegativeArgumentException.class)
  public void setTypeId_toSmall() {
    new Browser.Builder().setTypeId(-1);
  }

  @Test(expected = IllegalNullArgumentException.class)
  public void setUrl_null() {
    new Browser.Builder().setUrl(null);
  }

  @Test
  public void testGetters() throws Exception {
    final BrowserType browserType = new BrowserType.Builder().setId("1").setName("browser type test").build();
    final SortedSet<OperatingSystemPattern> osPatternSet = new TreeSet<OperatingSystemPattern>();
    final OperatingSystem operatingSystem = new OperatingSystem(1, "n1", "f1", "iu1", osPatternSet, "p1", "pu1", "u1", "i1");
    final SortedSet<BrowserPattern> patterns = new TreeSet<BrowserPattern>();

    final Browser.Builder builder = new Browser.Builder();
    assertThat(builder.setFamilyName(UserAgentFamily.SEAMONKEY.getName())).isSameAs(builder);
    assertThat(builder.setIcon("i1")).isSameAs(builder);
    assertThat(builder.setId(1)).isSameAs(builder);
    assertThat(builder.setInfoUrl("iu1")).isSameAs(builder);
    assertThat(builder.setOperatingSystem(operatingSystem)).isSameAs(builder);
    assertThat(builder.setPatterns(patterns)).isSameAs(builder);
    assertThat(builder.setProducer("p1")).isSameAs(builder);
    assertThat(builder.setProducerUrl("pu1")).isSameAs(builder);
    assertThat(builder.setType(browserType)).isSameAs(builder);
    assertThat(builder.setTypeId(1)).isSameAs(builder);
    assertThat(builder.setUrl("u1")).isSameAs(builder);

    assertThat(builder.getFamily()).isEqualTo(UserAgentFamily.SEAMONKEY);
    assertThat(builder.getFamilyName()).isEqualTo(UserAgentFamily.SEAMONKEY.getName());
    assertThat(builder.getIcon()).isEqualTo("i1");
    assertThat(builder.getInfoUrl()).isEqualTo("iu1");
    assertThat(builder.getOperatingSystem()).isSameAs(operatingSystem);
    assertThat(builder.getPatterns()).isEqualTo(patterns);
    assertThat(builder.getProducer()).isEqualTo("p1");
    assertThat(builder.getProducerUrl()).isEqualTo("pu1");
    assertThat(builder.getType().getName()).isEqualTo("browser type test");
    assertThat(builder.getType().getId()).isEqualTo(1);
    assertThat(builder.getTypeId()).isEqualTo(1);
    assertThat(builder.getUrl()).isEqualTo("u1");

    final Browser browser = builder.build();
    assertThat(browser.getFamily()).isEqualTo(UserAgentFamily.SEAMONKEY);
    assertThat(browser.getFamilyName()).isEqualTo(UserAgentFamily.SEAMONKEY.getName());
    assertThat(browser.getIcon()).isEqualTo("i1");
    assertThat(browser.getInfoUrl()).isEqualTo("iu1");
    assertThat(browser.getProducer()).isEqualTo("p1");
    assertThat(browser.getProducerUrl()).isEqualTo("pu1");
    assertThat(browser.getType().getName()).isEqualTo("browser type test");
    assertThat(browser.getType().getId()).isEqualTo(1);
    assertThat(browser.getUrl()).isEqualTo("u1");

    final Browser browserRebuild = new Builder(builder.build()).build();
    assertThat(browserRebuild.getFamily()).isEqualTo(UserAgentFamily.SEAMONKEY);
    assertThat(browserRebuild.getFamilyName()).isEqualTo(UserAgentFamily.SEAMONKEY.getName());
    assertThat(browserRebuild.getIcon()).isEqualTo("i1");
    assertThat(browserRebuild.getInfoUrl()).isEqualTo("iu1");
    assertThat(browserRebuild.getProducer()).isEqualTo("p1");
    assertThat(browserRebuild.getProducerUrl()).isEqualTo("pu1");
    assertThat(browserRebuild.getType().getName()).isEqualTo("browser type test");
    assertThat(browserRebuild.getType().getId()).isEqualTo(1);
    assertThat(browserRebuild.getUrl()).isEqualTo("u1");
  }

}
TOP

Related Classes of net.sf.uadetector.internal.data.domain.BrowserBuilderTest

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.