/*
* Copyright 2014 NAVER Corp.
*
* 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.navercorp.pinpoint.web.applicationmap;
import static com.navercorp.pinpoint.common.trace.ServiceTypeProperty.*;
import java.util.List;
import com.navercorp.pinpoint.common.trace.ServiceTypeFactory;
import org.junit.Assert;
import org.junit.Test;
import com.navercorp.pinpoint.common.trace.ServiceType;
import com.navercorp.pinpoint.web.vo.Application;
import com.navercorp.pinpoint.web.vo.Range;
/**
* @author emeroad
*/
public class LinkListTest {
private static final ServiceType TOMCAT = ServiceTypeFactory.of(1010, "TOMCAT", RECORD_STATISTICS);
private static final ServiceType BLOC = ServiceTypeFactory.of(1011, "BLOC", RECORD_STATISTICS);
@Test
public void testGetLinkList() throws Exception {
LinkList linkList = new LinkList();
Assert.assertEquals(linkList.getLinkList().size(), 0);
}
@Test
public void addLinkList() throws Exception {
Link tomcatToTomcatLink = createTomcatToTomcatLink();
LinkList copy = new LinkList();
copy.addLink(tomcatToTomcatLink);
LinkList original = new LinkList();
original.addLinkList(copy);
Assert.assertEquals(original.size(), 1);
// don't copy in case of duplicated node
original.addLinkList(copy);
Assert.assertEquals(original.size(), 1);
}
private Link createTomcatToTomcatLink() {
LinkList linkList = new LinkList();
Node from = new Node(new Application("from", TOMCAT));
Node to = new Node(new Application("to", TOMCAT));
Link link = new Link(CreateType.Source, from, to, new Range(0, 0));
return link;
}
private Link createTomcatToBlocLink() {
LinkList linkList = new LinkList();
Node from = new Node(new Application("from", TOMCAT));
Node to = new Node(new Application("to", BLOC));
Link link = new Link(CreateType.Source, from, to, new Range(0, 0));
return link;
}
@Test
public void testFindToLink() throws Exception {
Link tomcatToBlocLink = createTomcatToBlocLink();
LinkList list = new LinkList();
list.addLink(tomcatToBlocLink);
Link tomcatToTomcatLink = createTomcatToTomcatLink();
list.addLink(tomcatToTomcatLink);
// find all links requesting "to"
Application toBloc = new Application("to", BLOC);
List<Link> findToLink = list.findToLink(toBloc);
Assert.assertEquals(findToLink.size(), 1);
for (Link link : findToLink) {
Application to = link.getTo().getApplication();
Assert.assertTrue(toBloc + " " + to, toBloc.equals(to));
}
List<Link> unknown = list.findToLink(new Application("unknown", BLOC));
Assert.assertEquals(unknown.size(), 0);
}
@Test
public void testFindFromLink() throws Exception {
Link tomcatToBlocLink = createTomcatToBlocLink();
LinkList list = new LinkList();
list.addLink(tomcatToBlocLink);
Link tomcatToTomcatLink = createTomcatToTomcatLink();
list.addLink(tomcatToTomcatLink);
// find all links for "from" to request
Application tomcat = new Application("from", TOMCAT);
List<Link> findFromLink = list.findFromLink(tomcat);
Assert.assertEquals(findFromLink.size(), 2);
for (Link link : findFromLink) {
Application linkFrom = link.getFrom().getApplication();
Assert.assertTrue(linkFrom.equals(tomcat));
}
List<Link> unknown = list.findFromLink(new Application("unknown", TOMCAT));
Assert.assertEquals(unknown.size(), 0);
}
@Test
public void testContainsNode() throws Exception {
Link tomcatToBlocLink = createTomcatToBlocLink();
LinkList list = new LinkList();
Assert.assertFalse(list.containsNode(tomcatToBlocLink));
list.addLink(tomcatToBlocLink);
Assert.assertTrue(list.containsNode(tomcatToBlocLink));
}
@Test
public void testSize() throws Exception {
LinkList list = new LinkList();
Assert.assertEquals(list.size(), 0);
list.addLink(createTomcatToTomcatLink());
Assert.assertEquals(list.size(), 1);
}
}