package org.infinispan.cli; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.regex.Matcher; import org.infinispan.cli.shell.Man2Ansi; import org.infinispan.commons.util.Util; import org.testng.annotations.Test; @Test(groups="functional", testName="cli.shell.Man2AnsiTest") public class Man2AnsiTest { public void testMacro() { Matcher matcher = Man2Ansi.MAN_MACRO_REGEX.matcher(".SH SYNOPSIS"); assert matcher.matches(); assert matcher.groupCount()==2; assert ".SH ".equals(matcher.group(1)); assert "SYNOPSIS".equals(matcher.group(2)); } public void testNoMacro() { Matcher matcher = Man2Ansi.MAN_MACRO_REGEX.matcher("Text"); assert matcher.matches(); assert matcher.groupCount()==2; assert matcher.group(1)==null; assert "Text".equals(matcher.group(2)); } public void testAllManPages() throws Exception { InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("help"); BufferedReader r = new BufferedReader(new InputStreamReader(is)); for(String name = r.readLine(); name != null; name = r.readLine()) { testManPage("help/"+name); } r.close(); } private void testManPage(String name) throws Exception { InputStream is = null; try { is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name); Man2Ansi man2ansi = new Man2Ansi(72); man2ansi.render(is); } finally { Util.close(is); } } }