/* * Copyright 2023 the original author or authors. * * 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 * * https://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 rife.render; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import rife.template.TemplateFactory; import static org.assertj.core.api.Assertions.assertThat; class TestFormat { @Test void testAbbreviate() { var t = TemplateFactory.HTML.get("abbreviate"); t.setAttribute(TestCase.FOO, TestCase.SAMPLE_TEXT); assertThat(t.getContent()).as("activate.html").endsWith("…").hasSize(19); t = TemplateFactory.TXT.get("abbreviate"); t.setAttribute(TestCase.FOO, TestCase.SAMPLE_TEXT); assertThat(t.getContent()).as("activate.txt").endsWith("...").hasSize(8); } @Test void testFormatCreditCard() { var t = TemplateFactory.TXT.get("formatCreditCard"); t.setAttribute(TestCase.FOO, "4342 2565 6244 0179"); assertThat(t.getContent()).as("US VISA").isEqualTo("0179"); t.setAttribute(TestCase.FOO, "5130-3899-9169-8324"); assertThat(t.getContent()).as("FR MASTERCARD").isEqualTo("8324"); t.setAttribute(TestCase.FOO, "374380141731053"); assertThat(t.getContent()).as("UK AMEX").isEqualTo("1053"); t.setAttribute(TestCase.FOO, "000000000000001"); assertThat(t.getContent()).isEmpty(); } @Test void testMask() { var t = TemplateFactory.HTML.get("mask"); var foo = "374380141731053"; t.setAttribute(TestCase.FOO, foo); assertThat(t.getContent()).as("mask.html") .isEqualTo("3743•••••••••••"); t = TemplateFactory.TXT.get("mask"); t.setAttribute(TestCase.FOO, foo); assertThat(t.getContent()).as("mask.txt").isEqualTo("***************"); } @Test void testNormalize() { var t = TemplateFactory.HTML.get("normalize"); var foo = "News for January 6, 2023 (Paris)"; t.setValue(TestCase.FOO, foo); assertThat(t.getContent()).isEqualTo("" + foo + ""); } @Test @DisabledOnCi void testQrCode() { var t = TemplateFactory.SVG.get("qrCode"); var foo = "https://example.com/"; t.setAttribute(TestCase.FOO, foo); assertThat(t.getContent()).startsWith("" + foo + "%s", shortUrl, url)); t.setValue(TestCase.FOO, TestCase.FOO); assertThat(t.getContent()).isEqualTo("foo"); } @Test void testUptime() { var t = TemplateFactory.TXT.get("uptime"); assertThat(t.getContent()).as("uptime.txt").isEqualTo("0 minute\n0 minuto\n0 minute"); t = TemplateFactory.HTML.get("uptime"); t.setAttribute(Uptime.class.getName(), 547800300076L); assertThat(t.getContent()).as("uptime.html") .isEqualTo("17 années, 4 mois, 2 semaines, 1 jour, 6 heures, 45 minutes"); t.setAttribute(Uptime.class.getName(), 120000L); assertThat(t.getContent()).as("uptime.html: 2 min").isEqualTo("2 minutes"); t = TemplateFactory.JSON.get("uptime"); t.setAttribute(Uptime.class.getName(), 5999964460000L); assertThat(t.getContent()).as("uptime.json") .isEqualTo("190 years 3 months 4 days 47 minutes"); t.setAttribute(Uptime.class.getName(), 34822860000L); assertThat(t.getContent()).as("uptime.json: 1 year...") .isEqualTo("1 year 1 month 1 week 1 day 1 hour 1 minute"); t = TemplateFactory.TXT.get("uptime2"); t.setAttribute(Uptime.class.getName(), 547800388076L); assertThat(t.getContent()).as("uptime2.txt").isEqualTo("17YRS-4MOS-2WKS-1D-6H-46M"); } }