/******************************************************************************* * * org.onap.aaf * * =========================================================================== * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * * =========================================================================== * * 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. * * ============LICENSE_END==================================================== * * * * ******************************************************************************/ package org.onap.aaf.cadi.config.test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertThat; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.io.PrintStream; import org.onap.aaf.cadi.AbsUserCache; import org.onap.aaf.cadi.PropAccess; import org.onap.aaf.cadi.config.UsersDump; import org.onap.aaf.cadi.lur.LocalLur; import org.onap.aaf.cadi.lur.LocalPermission; import org.onap.aaf.cadi.util.Split; public class JU_UsersDump { private ByteArrayOutputStream outStream; private ByteArrayOutputStream stdoutSuppressor; private static final String expected = "\n" + "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n"; private final static String groups = "myname:groupA,groupB"; private final static String names = "admin:myname,yourname;suser:hisname,hername,m1234"; private AbsUserCache lur; @Before public void setup() throws IOException { outStream = new ByteArrayOutputStream(); stdoutSuppressor = new ByteArrayOutputStream(); System.setOut(new PrintStream(stdoutSuppressor)); lur = new LocalLur(new PropAccess(), groups, names); } @After public void tearDown() { System.setOut(System.out); } @Test public void writeTest() throws IOException { UsersDump.write(outStream, lur); String[] actualLines = Split.splitTrim('\n', outStream.toString()); String[] expectedLines = Split.splitTrim('\n', expected); for (String s : actualLines) { System.out.println(s); } assertThat(actualLines.length, is(expectedLines.length)); // Check that the output starts with an XML tag assertThat(actualLines[0], is(expectedLines[0])); // Check that lines 2-4 are a comment assertThat(actualLines[1], is(expectedLines[1])); assertThat(actualLines[3], is(expectedLines[3])); // Check that the rest of the output matches the expected output for (int i = 4; i < actualLines.length; i++) { assertThat(actualLines[i], is(expectedLines[i])); } // Run the test again with outStream as a PrintStream (for coverage) outStream.reset(); UsersDump.write(new PrintStream(outStream), lur); actualLines = Split.splitTrim('\n', outStream.toString()); assertThat(actualLines.length, is(expectedLines.length)); // Check that the output starts with an XML tag assertThat(actualLines[0], is(expectedLines[0])); // Check that lines 2-4 are a comment assertThat(actualLines[1], is(expectedLines[1])); assertThat(actualLines[3], is(expectedLines[3])); // Check that the rest of the output matches the expected output for (int i = 4; i < actualLines.length; i++) { assertThat(actualLines[i], is(expectedLines[i])); } } @Test public void updateUsersTest() { String output; File outputFile = new File("src/test/resources/userdump.xml"); assertThat(outputFile.exists(), is(false)); output = UsersDump.updateUsers("src/test/resources/userdump.xml", (LocalLur) lur); assertThat(output, is(nullValue())); assertThat(outputFile.exists(), is(true)); output = UsersDump.updateUsers("src/test/resources/userdump.xml", (LocalLur) lur); assertThat(output, is(nullValue())); assertThat(outputFile.exists(), is(true)); outputFile.delete(); } }