Package org.eclipse.egit.core.synchronize

Source Code of org.eclipse.egit.core.synchronize.ChangeTest

/*******************************************************************************
* Copyright (C) 2011, Dariusz Luksza <dariusz@luksza.org>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.eclipse.egit.core.synchronize;

import static org.eclipse.egit.core.synchronize.GitCommitsModelCache.ZERO_ID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.eclipse.egit.core.synchronize.GitCommitsModelCache.Change;
import org.eclipse.jgit.lib.AbbreviatedObjectId;
import org.junit.Test;

public class ChangeTest {

  private static final AbbreviatedObjectId MISC_ID = AbbreviatedObjectId
      .fromString("63448b851ae8831a1ad007f588508d3246ec7ace");

  @Test
  public void shouldNotBeEqualWithNullRefference() {
    // given
    Change change = new Change();

    // when
    boolean result = change.equals(null);

    // then
    assertFalse(result);
  }

  @Test
  public void shouldNotBeEqualWithDifferentType() {
    // given
    Change change = new Change();

    // when
    boolean result = change.equals(new Object());

    // then
    assertFalse(result);
  }

  @Test
  public void shouldBeEqualWhenBothIdsAreNull() {
    // given
    Change change = new Change();

    // when
    boolean result = change.equals(new Change());

    // then
    assertTrue(result);
  }

  @Test
  public void shouldNotBeEqualWhenOneObjectIdIsNull() {
    // given
    Change change = new Change();
    change.objectId = ZERO_ID;

    // when
    boolean result = change.equals(new Change());

    // then
    assertFalse(result);
  }

  @Test
  public void shouldBeEqualWhenBothObjectIdsAreTheSame() {
    // given
    Change c1 = new Change();
    Change c2 = new Change();
    c1.objectId = c2.objectId = MISC_ID;

    // when
    boolean result = c1.equals(c2);

    // then
    assertTrue(result);
    assertEquals(c1.hashCode(), c2.hashCode());
  }

  @Test
  public void shouldNotBeEqualWhenObjectIdsAreDifferent() {
    // given
    Change c1 = new Change();
    Change c2 = new Change();
    c1.objectId = ZERO_ID;
    c2.objectId = MISC_ID;

    // when
    boolean result = c1.equals(c2);

    // then
    assertFalse(result);
    assertFalse(c1.hashCode() == c2.hashCode());
  }

  @Test
  public void shouldNotBeEqualWhenOneRemoteObjectIsNull() {
    // given
    Change c1 = new Change();
    Change c2 = new Change();
    c1.objectId = c2.commitId = ZERO_ID;
    c1.remoteObjectId = MISC_ID;

    // when
    boolean result = c1.equals(c2);

    // then
    assertFalse(result);
    assertFalse(c1.hashCode() == c2.hashCode());
  }

  @Test
  public void shouldBeEqualWhenBothObjectIdsAndRemoteIdsAreSame() {
    // given
    Change c1 = new Change();
    Change c2 = new Change();
    c1.objectId = c2.objectId = ZERO_ID;
    c1.remoteObjectId = c2.remoteObjectId = MISC_ID;

    // when
    boolean result = c1.equals(c2);

    // then
    assertTrue(result);
    assertEquals(c1.hashCode(), c2.hashCode());
  }

}
TOP

Related Classes of org.eclipse.egit.core.synchronize.ChangeTest

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.