@@ -0,0 +1,2439 @@
+package pipe.models.visitor;%0A%0Aimport org.junit.Before;%0Aimport org.junit.Test;%0Aimport pipe.models.*;%0Aimport pipe.views.viewComponents.RateParameter;%0A%0Aimport java.awt.*;%0Aimport java.util.LinkedList;%0A%0Aimport static org.mockito.Mockito.mock;%0Aimport static org.mockito.Mockito.verify;%0A%0Apublic class PetriNetComponentRemovalVisitorTest %7B%0A    PetriNet mockNet;%0A    PetriNetComponentRemovalVisitor visitor;%0A%0A    @Before%0A    public void setUp() %7B%0A        mockNet = mock(PetriNet.class);%0A        visitor = new PetriNetComponentRemovalVisitor(mockNet);%0A    %7D%0A%0A    @Test%0A    public void testDeletesNormalArc() throws Exception %7B%0A        Place place = new Place(%22%22,%22%22);%0A        Transition transition = new Transition(%22%22,%22%22);%0A        NormalArc arc = new NormalArc(place, transition, new LinkedList%3CMarking%3E());%0A        arc.accept(visitor);%0A        verify(mockNet).removeArc(arc);%0A%0A    %7D%0A%0A    @Test%0A    public void testDeletesInhibitorArc() throws Exception %7B%0A        Place place = new Place(%22%22,%22%22);%0A        Transition transition = new Transition(%22%22,%22%22);%0A        InhibitorArc arc = new InhibitorArc(place, transition, new LinkedList%3CMarking%3E());%0A        arc.accept(visitor);%0A        verify(mockNet).removeArc(arc);%0A    %7D%0A%0A    @Test%0A    public void testDeletesPlace() throws Exception %7B%0A        Place place = new Place(%22%22,%22%22);%0A        place.accept(visitor);%0A        verify(mockNet).removePlace(place);%0A    %7D%0A%0A    @Test%0A    public void testDeletesTransition() throws Exception %7B%0A        Transition transition = new Transition(%22%22,%22%22);%0A        transition.accept(visitor);%0A        verify(mockNet).removeTransition(transition);%0A    %7D%0A%0A    @Test%0A    public void testDeletesAnnotation() throws Exception %7B%0A        Annotation annotation = new Annotation(0, 0, %22%22, 0, 0, false);%0A        annotation.accept(visitor);%0A        verify(mockNet).removeAnnotaiton(annotation);%0A%0A    %7D%0A%0A    //TODO: CHange RateParameter to model then test this%0A//    @Test%0A//    public void testDeletesRateParameter() throws Exception %7B%0A//        RateParameter parameter = new RateParameter(%22%22, 0, 0, 0);%0A//        parameter.accept%0A//%0A//    %7D%0A%0A    @Test%0A    public void testDeletesToken() throws Exception %7B%0A        Token token = new Token(%22%22, false, 0, new Color(0, 0, 0));%0A        token.accept(visitor);%0A        verify(mockNet).removeToken(token);%0A    %7D%0A%0A//    TODO: MAKE STATEGROUP HAVE VISITOR PATTERN%0A//    @Test%0A//    public void testRemoveStateGroup() throws Exception %7B%0A//%0A//    %7D%0A%7D%0A

Add better unit tests for PetriNetComponentRemovalVisitor