This is an automated email from the ASF dual-hosted git repository. slfan1989 pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push: new 178d046ce61 YARN-11526. [Client] Add a unit test to FormattingCLIUtils (#5801) 178d046ce61 is described below commit 178d046ce61fb7681906dba3b637d0340c352f33 Author: yl09099 <33595968+yl09...@users.noreply.github.com> AuthorDate: Thu Jul 6 09:11:13 2023 +0800 YARN-11526. [Client] Add a unit test to FormattingCLIUtils (#5801) --- .../yarn/client/util/TestFormattingCLIUtils.java | 79 ++++++++++++++++++++++ .../src/test/resources/FormattingResult | 23 +++++++ 2 files changed, 102 insertions(+) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/util/TestFormattingCLIUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/util/TestFormattingCLIUtils.java new file mode 100644 index 00000000000..d890fb5836a --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/util/TestFormattingCLIUtils.java @@ -0,0 +1,79 @@ +/** + * 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.hadoop.yarn.client.util; + +import org.junit.Test; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.text.DecimalFormat; +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestFormattingCLIUtils { + + @Test + public void testFormattingContent() throws URISyntaxException, IOException { + String titleString = "4 queues were found"; + List<String> headerStrings = Arrays.asList("Queue Name", "Queue Path", "State", "Capacity", + "Current Capacity", "Maximum Capacity", "Weight", "Maximum Parallel Apps"); + FormattingCLIUtils formattingCLIUtils = new FormattingCLIUtils(titleString) + .addHeaders(headerStrings); + DecimalFormat df = new DecimalFormat("#.00"); + + formattingCLIUtils.addLine("queueA", "root.queueA", + "RUNNING", df.format(0.4 * 100) + "%", + df.format(0.5 * 100) + "%", + df.format(0.8 * 100) + "%", + df.format(-1), + "10"); + formattingCLIUtils.addLine("queueB", "root.queueB", + "RUNNING", df.format(0.4 * 100) + "%", + df.format(0.5 * 100) + "%", + df.format(0.8 * 100) + "%", + df.format(-1), + "10"); + formattingCLIUtils.addLine("queueC", "root.queueC", + "RUNNING", df.format(0.4 * 100) + "%", + df.format(0.5 * 100) + "%", + df.format(0.8 * 100) + "%", + df.format(-1), + "10"); + formattingCLIUtils.addLine("queueD", "root.queueD", + "RUNNING", df.format(0.4 * 100) + "%", + df.format(0.5 * 100) + "%", + df.format(0.8 * 100) + "%", + df.format(-1), + "10"); + StringBuilder resultStrBuilder = new StringBuilder(); + List<String> lines = Files.readAllLines(Paths + .get(this.getClass().getResource("/FormattingResult").toURI())); + for (String line : lines) { + if (line != null && line.length() != 0 && !line.startsWith("#")) { + resultStrBuilder.append(line + "\n"); + } + } + String expectStr = resultStrBuilder.toString(); + assertEquals(expectStr, formattingCLIUtils.render()); + } +} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/resources/FormattingResult b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/resources/FormattingResult new file mode 100644 index 00000000000..f3dc873dbf4 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/resources/FormattingResult @@ -0,0 +1,23 @@ +# Licensed 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. +# log4j configuration used during build and unit tests + ++----------------------------------------------------------------------------------------------------------------------+ +| 4 queues were found | ++------------+-------------+---------+----------+------------------+------------------+--------+-----------------------+ +| Queue Name | Queue Path | State | Capacity | Current Capacity | Maximum Capacity | Weight | Maximum Parallel Apps | ++------------+-------------+---------+----------+------------------+------------------+--------+-----------------------+ +| queueA | root.queueA | RUNNING | 40.00% | 50.00% | 80.00% | -1.00 | 10 | +| queueB | root.queueB | RUNNING | 40.00% | 50.00% | 80.00% | -1.00 | 10 | +| queueC | root.queueC | RUNNING | 40.00% | 50.00% | 80.00% | -1.00 | 10 | +| queueD | root.queueD | RUNNING | 40.00% | 50.00% | 80.00% | -1.00 | 10 | ++------------+-------------+---------+----------+------------------+------------------+--------+-----------------------+ --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org