protected static String getScheme(final Protocol protocol) {
        if(new BundledProtocolPredicate().test(protocol)) {
            for(String scheme :
                protocol.getSchemes()) {
                // Return first custom scheme registered
                return scheme;
            }
            // Return default name
            return protocol.getIdentifier();
        }
        // Find parent protocol definition for profile
        final Protocol standard = ProtocolFactory.get().forName(protocol.getIdentifier());
        if(Arrays.equals(protocol.getSchemes(), standard.getSchemes())) {
            // No custom scheme set in profile
            return protocol.getProvider();
        }
        for(String scheme : protocol.getSchemes()) {
            // First custom scheme in profile
            return scheme;
        }
        // Default vendor string of third party profile
        return protocol.getProvider();
    }
@Test
    public void testScheme() throws Exception {
        final ProtocolFactory factory = new ProtocolFactory(new HashSet<>(Collections.singleton(new AzureProtocol())));
        final ProfilePlistReader reader = new ProfilePlistReader(factory);
        final Profile profile = reader.read(
            this.getClass().getResourceAsStream("/Azure.cyberduckprofile")
        );
        assertEquals("azure", TerminalHelpPrinter.getScheme(profile));
    }