/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.dolphinscheduler.alert.template.impl; import org.apache.dolphinscheduler.alert.utils.Constants; import org.apache.dolphinscheduler.alert.utils.JSONUtils; import org.apache.dolphinscheduler.common.enums.ShowType; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import static org.junit.Assert.*; /** * test class for DefaultHTMLTemplate */ public class DefaultHTMLTemplateTest{ private static final Logger logger = LoggerFactory.getLogger(DefaultHTMLTemplateTest.class); /** * only need test method GetMessageFromTemplate */ @Test public void testGetMessageFromTemplate(){ DefaultHTMLTemplate template = new DefaultHTMLTemplate(); String tableTypeMessage = template.getMessageFromTemplate(list2String(), ShowType.TABLE,true); assertEquals(tableTypeMessage,generateMockTableTypeResultByHand()); String textTypeMessage = template.getMessageFromTemplate(list2String(), ShowType.TEXT,true); assertEquals(textTypeMessage,generateMockTextTypeResultByHand()); } /** * generate some simulation data */ private String list2String(){ LinkedHashMap map1 = new LinkedHashMap<>(); map1.put("mysql service name","mysql200"); map1.put("mysql address","192.168.xx.xx"); map1.put("port","3306"); map1.put("no index of number","80"); map1.put("database client connections","190"); LinkedHashMap map2 = new LinkedHashMap<>(); map2.put("mysql service name","mysql210"); map2.put("mysql address","192.168.xx.xx"); map2.put("port","3306"); map2.put("no index of number","10"); map2.put("database client connections","90"); List> maps = new ArrayList<>(); maps.add(0,map1); maps.add(1,map2); String mapjson = JSONUtils.toJsonString(maps); logger.info(mapjson); return mapjson; } private String generateMockTableTypeResultByHand(){ return Constants.HTML_HEADER_PREFIX + "mysql service namemysql addressportno index of numberdatabase client connections\n" + "mysql200192.168.xx.xx330680190mysql210192.168.xx.xx33061090" + Constants.TABLE_BODY_HTML_TAIL; } private String generateMockTextTypeResultByHand(){ return Constants.HTML_HEADER_PREFIX + "{\"mysql service name\":\"mysql200\",\"mysql address\":\"192.168.xx.xx\",\"database client connections\":\"190\",\"port\":\"3306\",\"no index of number\":\"80\"}{\"mysql service name\":\"mysql210\",\"mysql address\":\"192.168.xx.xx\",\"database client connections\":\"90\",\"port\":\"3306\",\"no index of number\":\"10\"}" + Constants.TABLE_BODY_HTML_TAIL; } }