/* * Copyright (C) 2015-2017 PÂRIS Quentin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package org.phoenicis.tools.files; import org.junit.Test; import java.nio.file.attribute.PosixFilePermission; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class FileUtilitiesTest { private FileUtilities fileUtilities = new FileUtilities(); @Test(expected = IllegalArgumentException.class) public void testIntToPosixFilePermission_invalidMode() { testOneCaseIntToPosixFilePermission(1000); } @Test(expected = IllegalArgumentException.class) public void testIntToPosixFilePermission_invalidModeCase2() { testOneCaseIntToPosixFilePermission(590); } @Test public void testIntToPosixFilePermission_allAccess() { testOneCaseIntToPosixFilePermission(777, PosixFilePermission.GROUP_EXECUTE, PosixFilePermission.GROUP_READ, PosixFilePermission.GROUP_WRITE, PosixFilePermission.OTHERS_EXECUTE, PosixFilePermission.OTHERS_READ, PosixFilePermission.OTHERS_WRITE, PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.OWNER_READ, PosixFilePermission.OTHERS_WRITE); } @Test public void testIntToPosixFilePermission_intermediate() { testOneCaseIntToPosixFilePermission(755, PosixFilePermission.GROUP_EXECUTE, PosixFilePermission.GROUP_READ, PosixFilePermission.OTHERS_EXECUTE, PosixFilePermission.OTHERS_READ, PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE); } @Test public void testIntToPosixFilePermission_noAccess() { testOneCaseIntToPosixFilePermission(000); } private void testOneCaseIntToPosixFilePermission(int mode, PosixFilePermission... permissions) { List<PosixFilePermission> permissionsSet = new ArrayList<>(fileUtilities.intToPosixFilePermission(mode)); assertEquals(permissions.length, permissionsSet.size()); for (PosixFilePermission permission : permissions) { assertTrue(permissionsSet.contains(permission)); } } }