mirror of https://github.com/halo-dev/halo
parent
5953d2201d
commit
abe29c12bf
|
@ -0,0 +1,31 @@
|
|||
package run.halo.app.extension;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* <p>ConfigMap holds configuration data to consume.</p>
|
||||
*
|
||||
* @author guqing
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@GVK(group = "", version = "v1alpha1", kind = "ConfigMap", plural = "configmaps",
|
||||
singular = "configmap")
|
||||
public class ConfigMap extends AbstractExtension {
|
||||
|
||||
private Map<String, String> data;
|
||||
|
||||
public ConfigMap putDataItem(String key, String dataItem) {
|
||||
if (this.data == null) {
|
||||
this.data = new LinkedHashMap<>();
|
||||
}
|
||||
this.data.put(key, dataItem);
|
||||
return this;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
package run.halo.app.extension;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.security.util.InMemoryResource;
|
||||
import run.halo.app.infra.utils.YamlUnstructuredLoader;
|
||||
|
||||
/**
|
||||
* Tests for {@link ConfigMap}.
|
||||
*
|
||||
* @author guqing
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class ConfigMapTest {
|
||||
|
||||
@Mock
|
||||
ExtensionClient extensionClient;
|
||||
|
||||
@Test
|
||||
void configMapTest() {
|
||||
ArgumentCaptor<ConfigMap> argumentCaptor = ArgumentCaptor.forClass(ConfigMap.class);
|
||||
doNothing().when(extensionClient).create(argumentCaptor.capture());
|
||||
|
||||
ConfigMap configMap = new ConfigMap();
|
||||
Metadata metadata = new Metadata();
|
||||
metadata.setName("test-configmap");
|
||||
configMap.setMetadata(metadata);
|
||||
Map<String, String> data = Map.of("k1", "v1", "k2", "v2", "k3", "v3");
|
||||
configMap.setData(data);
|
||||
extensionClient.create(configMap);
|
||||
|
||||
ConfigMap value = argumentCaptor.getValue();
|
||||
assertThat(value).isNotNull();
|
||||
assertThat(value.getData()).isEqualTo(data);
|
||||
}
|
||||
|
||||
@Test
|
||||
void putDataItem() {
|
||||
ConfigMap configMap = new ConfigMap();
|
||||
configMap.putDataItem("k1", "v1")
|
||||
.putDataItem("k2", "v2")
|
||||
.putDataItem("k3", "v3");
|
||||
|
||||
assertThat(configMap.getData()).isNotNull();
|
||||
assertThat(configMap.getData()).hasSize(3);
|
||||
assertThat(configMap.getData()).isEqualTo(
|
||||
Map.of("k1", "v1", "k2", "v2", "k3", "v3"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void equalsTest() {
|
||||
ConfigMap configMapA = new ConfigMap();
|
||||
Metadata metadataA = new Metadata();
|
||||
metadataA.setName("test-configmap");
|
||||
configMapA.setMetadata(metadataA);
|
||||
configMapA.putDataItem("k1", "v1");
|
||||
|
||||
ConfigMap configMapB = new ConfigMap();
|
||||
Metadata metadataB = new Metadata();
|
||||
metadataB.setName("test-configmap");
|
||||
configMapB.setMetadata(metadataB);
|
||||
configMapB.putDataItem("k1", "v1");
|
||||
|
||||
assertThat(configMapA).isEqualTo(configMapB);
|
||||
|
||||
configMapB.getMetadata().setName("test-configmap-2");
|
||||
assertThat(configMapA).isNotEqualTo(configMapB);
|
||||
}
|
||||
|
||||
@Test
|
||||
void yamlTest() {
|
||||
String configMapYaml = """
|
||||
apiVersion: v1alpha1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: test-configmap
|
||||
data:
|
||||
k1: v1
|
||||
k2: v2
|
||||
k3: v3
|
||||
""";
|
||||
List<Unstructured> unstructureds =
|
||||
new YamlUnstructuredLoader(new InMemoryResource(configMapYaml)).load();
|
||||
assertThat(unstructureds).hasSize(1);
|
||||
Unstructured unstructured = unstructureds.get(0);
|
||||
ConfigMap configMap =
|
||||
Unstructured.OBJECT_MAPPER.convertValue(unstructured, ConfigMap.class);
|
||||
|
||||
assertThat(configMap.getData()).isEqualTo(Map.of("k1", "v1", "k2", "v2", "k3", "v3"));
|
||||
assertThat(configMap.getMetadata().getName()).isEqualTo("test-configmap");
|
||||
assertThat(configMap.getApiVersion()).isEqualTo("v1alpha1");
|
||||
assertThat(configMap.getKind()).isEqualTo("ConfigMap");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue