// Path: cliche-shell-core/src/main/java/com/maxifier/cliche/CommandNamer.java
// public static class NamingInfo {
//     public final String commandName;
//     public final String[] possibleAbbreviations;
// 
//     public NamingInfo(String commandName, String[] possibleAbbreviations) {
//         this.commandName = commandName;
//         this.possibleAbbreviations = possibleAbbreviations;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null) {
//             return false;
//         }
//         if (getClass() != obj.getClass()) {
//             return false;
//         }
//         final NamingInfo other = (NamingInfo)obj;
//         if ((this.commandName == null) ? (other.commandName != null) : !this.commandName.equals(other.commandName)) {
//             return false;
//         }
//         if (this.possibleAbbreviations != other.possibleAbbreviations &&
//                 (this.possibleAbbreviations == null ||
//                 !Arrays.equals(this.possibleAbbreviations, other.possibleAbbreviations))) {
//             return false;
//         }
//         return true;
//     }
// 
//     @Override
//     public int hashCode() {
//         int hash = 5;
//         hash = 59 * hash + (this.commandName != null ? this.commandName.hashCode() : 0);
//         hash = 59 * hash + (this.possibleAbbreviations != null ? Arrays.hashCode(this.possibleAbbreviations) : 0);
//         return hash;
//     }
// 
//     @Override
//     public String toString() {
//         return String.format("NamingInfo(%s, %s)", commandName, Arrays.toString(possibleAbbreviations));
//     }
// }


import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import com.maxifier.cliche.CommandNamer.NamingInfo;
import org.junit.Test;
import java.lang.reflect.Method;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.maxifier.cliche;





/**
 *
 * @author ASG
 */
public class DashJoinedNamerTest {

    public DashJoinedNamerTest() {
    }

    private static class TestClass{
        @Command
        public void cliTestMethod1() { }
        @Command
        public void cmdTestMethod2() { }
    }

    @Test
    public void testNameCommand() throws NoSuchMethodException {
        System.out.println("nameCommand");
        CommandNamer namer = new DashJoinedNamer(true);
        Method[] methods = new Method[] {
            TestClass.class.getMethod("cliTestMethod1"),
            TestClass.class.getMethod("cmdTestMethod2"),
        };

// Path: cliche-shell-core/src/main/java/com/maxifier/cliche/CommandNamer.java
// public static class NamingInfo {
//     public final String commandName;
//     public final String[] possibleAbbreviations;
// 
//     public NamingInfo(String commandName, String[] possibleAbbreviations) {
//         this.commandName = commandName;
//         this.possibleAbbreviations = possibleAbbreviations;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (obj == null) {
//             return false;
//         }
//         if (getClass() != obj.getClass()) {
//             return false;
//         }
//         final NamingInfo other = (NamingInfo)obj;
//         if ((this.commandName == null) ? (other.commandName != null) : !this.commandName.equals(other.commandName)) {
//             return false;
//         }
//         if (this.possibleAbbreviations != other.possibleAbbreviations &&
//                 (this.possibleAbbreviations == null ||
//                 !Arrays.equals(this.possibleAbbreviations, other.possibleAbbreviations))) {
//             return false;
//         }
//         return true;
//     }
// 
//     @Override
//     public int hashCode() {
//         int hash = 5;
//         hash = 59 * hash + (this.commandName != null ? this.commandName.hashCode() : 0);
//         hash = 59 * hash + (this.possibleAbbreviations != null ? Arrays.hashCode(this.possibleAbbreviations) : 0);
//         return hash;
//     }
// 
//     @Override
//     public String toString() {
//         return String.format("NamingInfo(%s, %s)", commandName, Arrays.toString(possibleAbbreviations));
//     }
// }


// Path: cliche-shell-core/src/test/java/com/maxifier/cliche/DashJoinedNamerTest.java
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import com.maxifier.cliche.CommandNamer.NamingInfo;
import org.junit.Test;
import java.lang.reflect.Method;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.maxifier.cliche;





/**
 *
 * @author ASG
 */
public class DashJoinedNamerTest {

    public DashJoinedNamerTest() {
    }

    private static class TestClass{
        @Command
        public void cliTestMethod1() { }
        @Command
        public void cmdTestMethod2() { }
    }

    @Test
    public void testNameCommand() throws NoSuchMethodException {
        System.out.println("nameCommand");
        CommandNamer namer = new DashJoinedNamer(true);
        Method[] methods = new Method[] {
            TestClass.class.getMethod("cliTestMethod1"),
            TestClass.class.getMethod("cmdTestMethod2"),
        };

        CommandNamer.NamingInfo[] expecteds = new CommandNamer.NamingInfo[] {