/* * Copyright (c) 2013, the Dart project authors. * * Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html * * 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.dart.engine.search; import com.google.dart.engine.EngineTestCase; import com.google.dart.engine.element.Element; import com.google.dart.engine.utilities.source.SourceRange; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class SearchMatchTest extends EngineTestCase { private final Element element = mock(Element.class); public void test_comparatorByName() throws Exception { Element elementA = mock(Element.class); Element elementB = mock(Element.class); when(elementA.getDisplayName()).thenReturn("A"); when(elementB.getDisplayName()).thenReturn("B"); SearchMatch matchA = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, elementA, new SourceRange(10, 5)); SearchMatch matchB = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, elementB, new SourceRange(20, 10)); // compare assertEquals(-1, SearchMatch.SORT_BY_ELEMENT_NAME.compare(matchA, matchB)); assertEquals(0, SearchMatch.SORT_BY_ELEMENT_NAME.compare(matchA, matchA)); assertEquals(1, SearchMatch.SORT_BY_ELEMENT_NAME.compare(matchB, matchA)); } public void test_equals() throws Exception { Element elementA = mock(Element.class); Element elementB = mock(Element.class); when(elementA.getDisplayName()).thenReturn("A"); when(elementB.getDisplayName()).thenReturn("B"); SearchMatch matchA = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, elementA, new SourceRange(10, 5)); // not SearchMatch assertFalse(matchA.equals(null)); // same object assertTrue(matchA.equals(matchA)); // same properties { SearchMatch matchB = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, elementA, new SourceRange(10, 5)); assertTrue(matchA.equals(matchB)); // change "qualified" matchB.setQualified(true); assertFalse(matchA.equals(matchB)); } } public void test_hashCode() throws Exception { Element element = mock(Element.class); SearchMatch match = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, element, new SourceRange(10, 5)); // no check match.hashCode(); } public void test_new() throws Exception { SearchMatch match = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, element, new SourceRange(10, 5)); assertSame(MatchQuality.EXACT, match.getQuality()); assertSame(MatchKind.TYPE_REFERENCE, match.getKind()); assertEquals(element, match.getElement()); assertEquals(new SourceRange(10, 5), match.getSourceRange()); // defaults assertEquals(false, match.isQualified()); // toString() assertEquals("SearchMatch(kind=TYPE_REFERENCE, quality=EXACT, element=null, " + "range=[offset=10, length=5], qualified=false)", match.toString()); } public void test_setQualified() throws Exception { SearchMatch match = new SearchMatch( MatchQuality.EXACT, MatchKind.TYPE_REFERENCE, element, new SourceRange(10, 5)); match.setQualified(true); assertEquals(true, match.isQualified()); // toString() assertEquals("SearchMatch(kind=TYPE_REFERENCE, quality=EXACT, element=null, " + "range=[offset=10, length=5], qualified=true)", match.toString()); } }