Package com.google.test.metric

Source Code of com.google.test.metric.CostUtilTest

/*
* Copyright 2007 Google Inc.
*
* 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 com.google.test.metric;

import junit.framework.TestCase;

import com.google.test.metric.testing.MetricComputerBuilder;
import com.google.test.metric.testing.MetricComputerJavaDecorator;

public class CostUtilTest extends TestCase {

  private MetricComputerJavaDecorator decoratedComputer;
  private final ClassRepository repo = new JavaClassRepository();

  @Override
  protected void setUp() throws Exception {
    MetricComputer toDecorate = new MetricComputerBuilder().withClassRepository(repo).build();
    decoratedComputer = new MetricComputerJavaDecorator(toDecorate, repo);
  }

  public void testInstanceCost0() {
    assertEquals(1, totalGlobalCost("boolean instanceCost0()"));
    assertEquals(0, cyclomaticCost("boolean instanceCost0()"));
    assertEquals(0, globalCost("boolean instanceCost0()"));
    assertEquals(0, totalComplexityCost("boolean instanceCost0()"));
  }

  public void testStaticCost0() {
    assertEquals(0, cyclomaticCost("boolean staticCost0()"));
    assertEquals(0, globalCost("boolean staticCost0()"));
    assertEquals(0, totalComplexityCost("boolean staticCost0()"));
    assertEquals(1, totalGlobalCost("boolean staticCost0()"));
  }

  public void testInstanceCost1() {
    assertEquals(1, totalGlobalCost("boolean instanceCost1()"));
    assertEquals(1, cyclomaticCost("boolean instanceCost1()"));
    assertEquals(0, globalCost("boolean instanceCost1()"));
    assertEquals(1, totalComplexityCost("boolean instanceCost1()"));
  }

  public void testStaticCost1() {
    assertEquals(1, cyclomaticCost("boolean staticCost1()"));
    assertEquals(0, globalCost("boolean staticCost1()"));
    assertEquals(1, totalComplexityCost("boolean staticCost1()"));
    assertEquals(1, totalGlobalCost("boolean staticCost1()"));
  }

  public void testInstanceCost2() {
    assertEquals(2, cyclomaticCost("boolean instanceCost2()"));
    assertEquals(0, globalCost("boolean instanceCost2()"));
    assertEquals(2, totalComplexityCost("boolean instanceCost2()"));
    assertEquals(1, totalGlobalCost("boolean instanceCost2()"));
  }

  public void testStatcCost2() {
    assertEquals(2, cyclomaticCost("boolean staticCost2()"));
    assertEquals(0, globalCost("boolean staticCost2()"));
    assertEquals(2, totalComplexityCost("boolean staticCost2()"));
    assertEquals(1, totalGlobalCost("boolean staticCost2()"));
  }

  public void testInstanceCost3() {
    assertEquals(3, cyclomaticCost("boolean instanceCost3()"));
    assertEquals(0, globalCost("boolean instanceCost3()"));
    assertEquals(3, totalComplexityCost("boolean instanceCost3()"));
    assertEquals(1, totalGlobalCost("boolean instanceCost3()"));
  }

  public void testStaticCost3() {
    assertEquals(3, cyclomaticCost("boolean staticCost3()"));
    assertEquals(0, globalCost("boolean staticCost3()"));
    assertEquals(3, totalComplexityCost("boolean staticCost3()"));
    assertEquals(1, totalGlobalCost("boolean staticCost3()"));
  }

  public void testInstanceCost4() {
    assertEquals(4, cyclomaticCost("boolean instanceCost4()"));
    assertEquals(0, globalCost("boolean instanceCost4()"));
    assertEquals(4, totalComplexityCost("boolean instanceCost4()"));
    assertEquals(1, totalGlobalCost("boolean instanceCost4()"));
  }

  public void testStaticCost4() {
    assertEquals(4, cyclomaticCost("boolean staticCost4()"));
    assertEquals(0, globalCost("boolean staticCost4()"));
    assertEquals(4, totalComplexityCost("boolean staticCost4()"));
    assertEquals(1, totalGlobalCost("boolean staticCost4()"));
  }

  public void testCostUtilClassCost() throws Exception {
    ClassCost classCost = decoratedComputer.compute(CostUtil.class);
    assertEquals(4, classCost.getHighestMethodComplexityCost());
    assertEquals(1, classCost.getHighestMethodGlobalCost());
    assertEquals(20, classCost.getTotalComplexityCost());
    assertEquals(12, classCost.getTotalGlobalCost());
  }

  private int totalComplexityCost(String method) {
    return methodCostFor(method).getTotalCost().getCyclomaticComplexityCost();
  }

  private int cyclomaticCost(String method) {
    return methodCostFor(method).getCost().getCyclomaticComplexityCost();
  }

  private int globalCost(String method) {
    return methodCostFor(method).getCost().getGlobalCost();
  }

  private int totalGlobalCost(String method) {
    return methodCostFor(method).getTotalCost().getGlobalCost();
  }

  private MethodCost methodCostFor(String method) {
    MethodCost cost = decoratedComputer.compute(CostUtil.class, method);
    return cost;
  }
}
TOP

Related Classes of com.google.test.metric.CostUtilTest

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.