160da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti/* 260da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * Copyright (C) 2007-2010 Júlio Vilmar Gesser. 360da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * Copyright (C) 2011, 2013-2016 The JavaParser Team. 460da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * 560da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * This file is part of JavaParser. 660da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * 760da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * JavaParser can be used either under the terms of 860da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * a) the GNU Lesser General Public License as published by 960da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * the Free Software Foundation, either version 3 of the License, or 1060da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * (at your option) any later version. 1160da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * b) the terms of the Apache License 1260da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * 1360da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * You should have received a copy of both licenses in LICENCE.LGPL and 1460da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * LICENCE.APACHE. Please refer to those files for details. 1560da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * 1660da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * JavaParser is distributed in the hope that it will be useful, 1760da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * but WITHOUT ANY WARRANTY; without even the implied warranty of 1860da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1960da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti * GNU Lesser General Public License for more details. 2060da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti */ 2160da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti 2260da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassettipackage com.github.javaparser.ast.body; 2360da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti 2497d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassettiimport com.github.javaparser.ast.expr.Expression; 2597d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassettiimport com.github.javaparser.ast.expr.IntegerLiteralExpr; 2660da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassettiimport com.github.javaparser.ast.expr.SimpleName; 2760da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassettiimport org.junit.Test; 2860da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti 2900e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggenimport static org.junit.Assert.assertEquals; 3097d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassettiimport static org.junit.Assert.assertFalse; 3160da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassettiimport static org.junit.Assert.assertTrue; 3260da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti 3360da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassettipublic class AnnotationMemberDeclarationTest { 3460da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti 3560da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti @Test 3660da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti public void whenSettingNameTheParentOfNameIsAssigned() { 3700e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen AnnotationMemberDeclaration decl = new AnnotationMemberDeclaration(); 3860da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti SimpleName name = new SimpleName("foo"); 3900e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen decl.setName(name); 4060da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti assertTrue(name.getParentNode().isPresent()); 4100e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen assertTrue(decl == name.getParentNode().get()); 4260da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti } 4397d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti 4497d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti @Test 4597d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti public void removeDefaultValueWhenNoDefaultValueIsPresent() { 4600e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen AnnotationMemberDeclaration decl = new AnnotationMemberDeclaration(); 4797d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti SimpleName name = new SimpleName("foo"); 4800e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen decl.setName(name); 4900e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen 5000e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen decl.removeDefaultValue(); 5100e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen 5200e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen assertFalse(decl.getDefaultValue().isPresent()); 5397d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti } 5497d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti 5597d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti @Test 5697d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti public void removeDefaultValueWhenDefaultValueIsPresent() { 5700e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen AnnotationMemberDeclaration decl = new AnnotationMemberDeclaration(); 5897d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti SimpleName name = new SimpleName("foo"); 5900e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen decl.setName(name); 6097d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti Expression defaultValue = new IntegerLiteralExpr("2"); 6100e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen decl.setDefaultValue(defaultValue); 6200e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen 6300e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen decl.removeDefaultValue(); 6400e95181f47b51e4529b8cb3ad8cb310faa10b07Danny van Bruggen 6597d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti assertFalse(defaultValue.getParentNode().isPresent()); 6697d0f9f7adeddce0deba68a5db8a11f5b7b6ba0aFederico Tomassetti } 6760da5f543f1ee17277d66b36c8ab33c98813c68dFederico Tomassetti} 68