Labels { public static Labels fromString(String stringLabels) throws IllegalArgumentException { Map<String, String> labels = new HashMap<>(); try { if (stringLabels != null && !stringLabels.isEmpty()) { String[] labelsArray = stringLabels.split(","); for (String label : labelsArray) { String[] fields = label.split("="); labels.put(fields[0].trim(), fields[1].trim()); } } } catch (Exception e) { throw new IllegalArgumentException("Failed to parse labels from string " + stringLabels, e); } return new Labels(labels); } private  Labels(Map<String, String> labels); static String cluster(HasMetadata resource); static String name(HasMetadata resource); Labels withAdditionalLabels(Map<String, String> additionalLabels); static Labels fromResource(HasMetadata resource); static Labels fromMap(Map<String, String> labels); static Labels fromString(String stringLabels); Labels withStrimziKind(String kind); Labels withStrimziCluster(String cluster); Labels withKubernetesName(String name); Labels withKubernetesInstance(String instanceName); Labels withKubernetesPartOf(String instanceName); Labels withKubernetesManagedBy(String operatorName); Labels withStrimziName(String name); Labels withStrimziDiscovery(); Labels withStatefulSetPod(String name); Map<String, String> toMap(); String toSelectorString(); static Labels forStrimziCluster(String cluster); static Labels forStrimziKind(String kind); Labels strimziSelectorLabels(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static Labels generateDefaultLabels(HasMetadata resource, String applicationName, String managedBy); static final String STRIMZI_DOMAIN; static final String KUBERNETES_DOMAIN; static final String STRIMZI_KIND_LABEL; static final String STRIMZI_CLUSTER_LABEL; static final String STRIMZI_NAME_LABEL; static final String STRIMZI_DISCOVERY_LABEL; static final String KUBERNETES_NAME_LABEL; static final String KUBERNETES_INSTANCE_LABEL; static final String KUBERNETES_PART_OF_LABEL; static final String APPLICATION_NAME; static final String KUBERNETES_MANAGED_BY_LABEL; static final String KUBERNETES_STATEFULSET_POD_LABEL; static final Labels EMPTY; }
@Test public void testParseNullLabels() { String validLabels = null; assertThat(Labels.fromString(validLabels), is(Labels.EMPTY)); }
@Test public void testParseEmptyLabels() { String validLabels = ""; assertThat(Labels.fromString(validLabels), is(Labels.EMPTY)); }
@Test public void testParseInvalidLabels1() { assertThrows(IllegalArgumentException.class, () -> { String invalidLabels = ",key1=value1,key2=value2"; Labels.fromString(invalidLabels); }); }
@Test public void testParseInvalidLabels2() { assertThrows(IllegalArgumentException.class, () -> { String invalidLabels = "key1=value1,key2="; Labels.fromString(invalidLabels); }); }
@Test public void testParseInvalidLabels3() { assertThrows(IllegalArgumentException.class, () -> { String invalidLabels = "key2"; Labels.fromString(invalidLabels); }); }