Package com.google.testing.testify.risk.frontend.client.riskprovider.impl

Source Code of com.google.testing.testify.risk.frontend.client.riskprovider.impl.CheckinDirectoryTreeNodeTest

// Copyright 2010 Google Inc. All Rights Reseved.
//
// 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.testing.testify.risk.frontend.client.riskprovider.impl;

import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.testing.testify.risk.frontend.model.Checkin;

import junit.framework.TestCase;

import java.util.List;

/**
* Unit tests for the CheckinDirectoryTreeNode type.
*
* @author chrsmith@google.com (Chris Smith)
*/
public class CheckinDirectoryTreeNodeTest extends TestCase {

  /** Returns a built checkin tree for testing purposes. */
  private CheckinDirectoryTreeNode getTestTree1() {
    CheckinDirectoryTreeNode root = new CheckinDirectoryTreeNode();
    root.addCheckin("alpha", new Checkin());
    root.addCheckin("alpha/beta", new Checkin());
    root.addCheckin("alpha/beta/gamma", new Checkin());
    // Forward and backslashes should be treated the same.
    root.addCheckin("alpha\\beta\\gamma", new Checkin());
    root.addCheckin("alpha/beta/delta", new Checkin());

    return root;
  }

  /** Get list of checkins to use for directory tree construction. */
  private List<Checkin> getTestCheckins() {
    Checkin checkin1 = new Checkin();
    checkin1.addDirectoryTouched("//depot/testify/risk/frontend/client/");
    checkin1.addDirectoryTouched("//depot/testify/risk/frontend/client/view/impl/");
    checkin1.addDirectoryTouched("//depot/testify/risk/frontend/public/");
    checkin1.addDirectoryTouched("//depot/testify/risk/frontend/public/images/");

    Checkin checkin2 = new Checkin();
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/client/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/client/dataprovider/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/client/dataprovider/impl/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/client/presenter/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/client/view/impl/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/client/view/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/model/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/server/impl/");
    checkin2.addDirectoryTouched("//depot/testify/risk/frontend/shared/");

    return Lists.newArrayList(checkin1, checkin2);
  }

  public void testCreation1() {
    CheckinDirectoryTreeNode root = new CheckinDirectoryTreeNode();

    List<Checkin> checkins = getTestCheckins();
    for (Checkin checkin : checkins) {
      for (String directoryTouched : checkin.getDirectoriesTouched()) {
        root.addCheckin(directoryTouched, checkin);
      }
    }

    ImmutableSet<Checkin> viewImplCheckins =
        root.getCheckinsUnder("//depot/testify/risk/frontend/client/view/impl/");
    assertEquals(2, viewImplCheckins.size());

    // Verify trailing slash isn't a problem
    ImmutableSet<Checkin> viewImplCheckins2 =
      root.getCheckinsUnder("//depot/testify/risk/frontend/client/view/impl");
    assertEquals(2, viewImplCheckins2.size());

    // Verify trailing slash isn't a problem
    ImmutableSet<Checkin> modelCheckins =
        root.getCheckinsUnder("//depot/testify/risk/frontend/model");
    assertEquals(1, modelCheckins.size());
  }

  public void testCreation2() {
    CheckinDirectoryTreeNode root = getTestTree1();

    ImmutableSet<Checkin> alpha = root.getCheckinsUnder("alpha");
    assertEquals(5, alpha.size());

    ImmutableSet<Checkin> beta = root.getCheckinsUnder("alpha/beta");
    assertEquals(4, beta.size());


    ImmutableSet<Checkin> gamma = root.getCheckinsUnder("alpha/beta/gamma");
    assertEquals(2, gamma.size());

    ImmutableSet<Checkin> delta = root.getCheckinsUnder("alpha/beta/delta");
    assertEquals(1, delta.size());
  }

  public void testLookup() {
    // Verify looking up non-existant nodes results in an empty set of checkins.
    CheckinDirectoryTreeNode root = getTestTree1();

    ImmutableSet<Checkin> test = root.getCheckinsUnder("totally / doesn't \\ exist");
    assertEquals(0, test.size());
  }
}
TOP

Related Classes of com.google.testing.testify.risk.frontend.client.riskprovider.impl.CheckinDirectoryTreeNodeTest

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.