How to use registerCustomDateFormat method of org.assertj.core.api.AssertionsForClassTypes class

Best Assertj code snippet using org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat

Source:CustomAssertJ.java Github

copy

Full Screen

...2172 * AssertJ is gonna use any date formats registered with one of these methods :2173 * <ul>2174 * <li>{@link org.assertj.core.api.AbstractDateAssert#withDateFormat(String)}</li>2175 * <li>{@link org.assertj.core.api.AbstractDateAssert#withDateFormat(java.text.DateFormat)}</li>2176 * <li>{@link #registerCustomDateFormat(java.text.DateFormat)}</li>2177 * <li>{@link #registerCustomDateFormat(String)}</li>2178 * </ul>2179 * <p>2180 * Beware that AssertJ will use the newly registered format for <b>all remaining Date assertions in the test suite</b>2181 * <p>2182 * To revert to default formats only, call {@link #useDefaultDateFormatsOnly()} or2183 * {@link org.assertj.core.api.AbstractDateAssert#withDefaultDateFormatsOnly()}.2184 * <p>2185 * Code examples:2186 * <pre><code class='java'> Date date = ... // set to 2003 April the 26th2187 * assertThat(date).isEqualTo("2003-04-26");2188 *2189 * try {2190 * // date with a custom format : failure since the default formats don't match.2191 * assertThat(date).isEqualTo("2003/04/26");2192 * } catch (AssertionError e) {2193 * assertThat(e).hasMessage("Failed to parse 2003/04/26 with any of these date formats: " +2194 * "[yyyy-MM-dd'T'HH:mm:ss.SSSX, yyyy-MM-dd'T'HH:mm:ss.SSS, " +2195 * "yyyy-MM-dd'T'HH:mm:ssX, " +2196 * "yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd]");2197 * }2198 *2199 * // registering a custom date format to make the assertion pass2200 * registerCustomDateFormat(new SimpleDateFormat("yyyy/MM/dd")); // registerCustomDateFormat("yyyy/MM/dd") would work to.2201 * assertThat(date).isEqualTo("2003/04/26");2202 *2203 * // the default formats are still available and should work2204 * assertThat(date).isEqualTo("2003-04-26");</code></pre>2205 *2206 * @param userCustomDateFormat the new Date format used for String based Date assertions.2207 */2208 public static void registerCustomDateFormat(DateFormat userCustomDateFormat) {2209 AbstractDateAssert.registerCustomDateFormat(userCustomDateFormat);2210 }2211 /**2212 * Add the given date format to the ones used to parse date String in String based Date assertions like2213 * {@link org.assertj.core.api.AbstractDateAssert#isEqualTo(String)}.2214 * <p>2215 * User date formats are used before default ones in the order they have been registered (first registered, first2216 * used).2217 * <p>2218 * AssertJ is gonna use any date formats registered with one of these methods :2219 * <ul>2220 * <li>{@link org.assertj.core.api.AbstractDateAssert#withDateFormat(String)}</li>2221 * <li>{@link org.assertj.core.api.AbstractDateAssert#withDateFormat(java.text.DateFormat)}</li>2222 * <li>{@link #registerCustomDateFormat(java.text.DateFormat)}</li>2223 * <li>{@link #registerCustomDateFormat(String)}</li>2224 * </ul>2225 * <p>2226 * Beware that AssertJ will use the newly registered format for <b>all remaining Date assertions in the test suite</b>.2227 * <p>2228 * To revert to default formats only, call {@link #useDefaultDateFormatsOnly()} or2229 * {@link org.assertj.core.api.AbstractDateAssert#withDefaultDateFormatsOnly()}.2230 * <p>2231 * Code examples:2232 * <pre><code class='java'> Date date = ... // set to 2003 April the 26th2233 * assertThat(date).isEqualTo("2003-04-26");2234 *2235 * try {2236 * // date with a custom format : failure since the default formats don't match.2237 * assertThat(date).isEqualTo("2003/04/26");2238 * } catch (AssertionError e) {2239 * assertThat(e).hasMessage("Failed to parse 2003/04/26 with any of these date formats: " +2240 * "[yyyy-MM-dd'T'HH:mm:ss.SSSX, yyyy-MM-dd'T'HH:mm:ss.SSS, " +2241 * "yyyy-MM-dd'T'HH:mm:ssX, " +2242 * "yyyy-MM-dd'T'HH:mm:ss, yyyy-MM-dd]");2243 * }2244 *2245 * // registering a custom date format to make the assertion pass2246 * registerCustomDateFormat("yyyy/MM/dd");2247 * assertThat(date).isEqualTo("2003/04/26");2248 *2249 * // the default formats are still available and should work2250 * assertThat(date).isEqualTo("2003-04-26");</code></pre>2251 *2252 * @param userCustomDateFormatPattern the new Date format pattern used for String based Date assertions.2253 */2254 public static void registerCustomDateFormat(String userCustomDateFormatPattern) {2255 AbstractDateAssert.registerCustomDateFormat(userCustomDateFormatPattern);2256 }2257 /**2258 * Remove all registered custom date formats =&gt; use only the defaults date formats to parse string as date.2259 * <p>2260 * Beware that the default formats are expressed in the current local timezone.2261 * <p>2262 * Defaults date format are:2263 * <ul>2264 * <li><code>yyyy-MM-dd HH:mm:ss.SSSX</code></li>2265 * <li><code>yyyy-MM-dd'T'HH:mm:ss.SSS</code></li>2266 * <li><code>yyyy-MM-dd HH:mm:ss.SSS</code> (for {@link java.sql.Timestamp} String representation support)</li>2267 * <li><code>yyyy-MM-dd'T'HH:mm:ssX</code></li>2268 * <li><code>yyyy-MM-dd'T'HH:mm:ss</code></li>2269 * <li><code>yyyy-MM-dd</code></li>...

Full Screen

Full Screen

Source:UserRepositoryTests.java Github

copy

Full Screen

...11import org.springframework.data.domain.Pageable;12import org.springframework.test.annotation.Rollback;13import java.util.List;14import static org.assertj.core.api.AssertionsForClassTypes.assertThat;15import static org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat;16@DataJpaTest(showSql = false)17@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)18@Rollback(false)19public class UserRepositoryTests {20 @Autowired21 private UserRepository repo;22 @Autowired23 private TestEntityManager entityManager;24 @Test25 public void testCreateNewUserWithOneRole(){26 Role roleAdmin = entityManager.find(Role.class,1);27 User userNameHM = new User("testingpurposeap@gmail.com","qwerty123","Ajit","Pal");28 userNameHM.addRole(roleAdmin);29 User savedUser = repo.save(userNameHM);...

Full Screen

Full Screen

Source:TimestampServiceTest.java Github

copy

Full Screen

...9 @Test10 @DisplayName("Timestamp should be in HH:mm format")11 void timestampFormat() {12 String timestampString = TimestampService.getMessageTimestamp();13 Assertions.registerCustomDateFormat("HH:mm");14 assertThat(timestampString).matches(Pattern.compile("(2[0-3]|[01][0-9]):[0-5][0-9]"));15 }16}...

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1package com.puppycrawl.tools.checkstyle.checks.coding;2import static org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat;3public class InputCustomDateFormat {4 public static void main(String[] args) {5 registerCustomDateFormat("yyyy-MM-dd");6 }7}8 package com.puppycrawl.tools.checkstyle.checks.coding;9-import com.google.common.collect.ImmutableList;10+import com.google.common.collect.ImmutableList.Builder;11 import com.puppycrawl.tools.checkstyle.api.AbstractCheck;12 import com.puppycrawl.tools.checkstyle.api.DetailAST;13 import com.puppycrawl.tools.checkstyle.api.TokenTypes;14@@ -10,7 +10,7 @@ import com.puppycrawl.tools.checkstyle.utils.TokenUtil;15 public class CustomDeclarationOrderCheck extends AbstractCheck {16- private static final ImmutableList<String> DEFAULT_ORDER = ImmutableList.of(17+ private static final Builder<String> DEFAULT_ORDER = ImmutableList.builder(18@@ -27,7 +27,7 @@ public class CustomDeclarationOrderCheck extends AbstractCheck {19 public List<String> getOrder() {20- return ImmutableList.copyOf(order);21+ return order.build();22 }

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1package org.example;2import org.junit.Test;3import java.text.SimpleDateFormat;4import java.util.Date;5import static org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat;6import static org.assertj.core.api.AssertionsForClassTypes.assertThat;7{8 public void test1() 9 {10 registerCustomDateFormat("yyyy-MM-dd", new SimpleDateFormat("yyyy-MM-dd"));11 Date date = new Date(2019, 9, 12);12 assertThat(date).isEqualTo("2019-10-12");13 }14}15package org.example;16import org.junit.Test;17import java.text.SimpleDateFormat;18import java.util.Date;19import static org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat;20import static org.assertj.core.api.AssertionsForClassTypes.assertThat;21{22 public void test2() 23 {24 registerCustomDateFormat("yyyy-MM-dd", new SimpleDateFormat("yyyy-MM-dd"));25 Date date = new Date(2019, 9, 12);26 assertThat(date).isEqualTo("2019-10-12");27 }28}29package org.example;30import org.junit.Test;31import java.text.SimpleDateFormat;32import java.util.Date;33import static org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat;34import static org.assertj.core.api.AssertionsForClassTypes.assertThat;35{36 public void test3() 37 {38 registerCustomDateFormat("yyyy-MM-dd", new SimpleDateFormat("yyyy-MM-dd"));39 Date date = new Date(2019, 9, 12);40 assertThat(date).isEqualTo("2019-10-12");41 }42}

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1import static org.assertj.core.api.AssertionsForClassTypes.registerCustomDateFormat;2import static org.assertj.core.api.AssertionsForClassTypes.assertThat;3import java.time.LocalDateTime;4import java.time.format.DateTimeFormatter;5public class RegisterCustomDateFormat {6 public static void main(String[] args) {7 registerCustomDateFormat("yyyy-MM-dd HH:mm:ss", LocalDateTime.class);8 LocalDateTime dateTime = LocalDateTime.now();9 assertThat(dateTime).isEqualTo("2019-10-16 20:00:00");10 }11}12Recommended Posts: How to use registerCustomDateFormat() of org.assertj.core.api.AssertionsForClassTypes class?13How to use usingDefaultDateFormats() of org.assertj.core.api.AssertionsForClassTypes class?14How to use usingDefaultComparator() of org.assertj.core.api.AssertionsForClassTypes class?15How to use usingDefaultElementComparator() of org.assertj.core.api.AssertionsForClassTypes class?16How to use usingDefaultComparatorIgnoringFields() of org.assertj.core.api.AssertionsForClassTypes class?17How to use usingRecursiveComparison() of org.assertj.core.api.AssertionsForClassTypes class?18How to use usingElementComparatorOnFields() of org.assertj.core.api.AssertionsForClassTypes class?19How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?20How to use usingComparatorForType() of org.assertj.core.api.AssertionsForClassTypes class?21How to use usingComparatorForElementFieldsWithType() of org.assertj.core.api.AssertionsForClassTypes class?22How to use usingComparatorForElementFieldsWithNames() of org.assertj.core.api.AssertionsForClassTypes class?23How to use usingComparatorForElementFields() of org.assertj.core.api.AssertionsForClassTypes class?24How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?25How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?26How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?27How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?28How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?29How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?30How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?31How to use usingComparatorForFields() of org.assertj.core.api.AssertionsForClassTypes class?

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1package org.assertj.core.api;2import org.junit.jupiter.api.Test;3import java.text.SimpleDateFormat;4import java.util.Date;5import static org.assertj.core.api.AssertionsForClassTypes.assertThat;6class AssertionsForClassTypes_registerCustomDateFormat_Test {7 void should_register_custom_date_format() {8 registerCustomDateFormat("yyyy-MM-dd", "yyyy-MM-dd");9 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");10 Date date = dateFormat.parse("2015-03-04");11 assertThat(date).isEqualTo("2015-03-04");12 }13}14package org.assertj.core.api;15import org.junit.jupiter.api.Test;16import java.text.SimpleDateFormat;17import java.util.Date;18import static org.assertj.core.api.AssertionsForClassTypes.assertThat;19class AssertionsForClassTypes_registerCustomDateFormat_Test {20 void should_register_custom_date_format() {21 registerCustomDateFormat("yyyy-MM-dd", "yyyy-MM-dd");22 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");23 Date date = dateFormat.parse("2015-03-04");24 assertThat(date).isEqualTo("2015-03-04");25 }26}27package org.assertj.core.api;28import org.junit.jupiter.api.Test;29import java.text.SimpleDateFormat;30import java.util.Date;31import static org.assertj.core.api.AssertionsForClassTypes.assertThat;32class AssertionsForClassTypes_registerCustomDateFormat_Test {33 void should_register_custom_date_format() {34 registerCustomDateFormat("yyyy-MM-dd", "yyyy-MM-dd");35 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");36 Date date = dateFormat.parse("2015-03-04");37 assertThat(date).isEqualTo("2015-03-04");38 }39}40package org.assertj.core.api;41import org.junit.jupiter.api.Test;42import java.text.SimpleDateFormat;43import java.util.Date;44import static org.assertj.core.api.AssertionsForClassTypes.assertThat;45class AssertionsForClassTypes_registerCustomDateFormat_Test {

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1import org.assertj.core.api.AssertionsForClassTypes;2import java.time.format.DateTimeFormatter;3import java.time.format.FormatStyle;4import java.util.Locale;5import java.util.Date;6public class Test {7 public static void main(String[] args) {8 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.UK);9 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.US);10 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.FRANCE);11 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.GERMANY);12 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.ITALY);13 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.JAPAN);14 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.KOREA);15 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.CHINA);16 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.CHINESE);17 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.CANADA);18 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.CANADA_FRENCH);19 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.ENGLISH);20 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.FRENCH);21 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.GERMAN);22 AssertionsForClassTypes.registerCustomDateFormat("dd/MM/yyyy", Locale.ITALIAN);

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1package org.assertj.core.api;2import java.text.SimpleDateFormat;3import java.util.Date;4public class AssertionsForClassTypes extends AbstractAssert<AssertionsForClassTypes, Object> {5 public static void registerCustomDateFormat(String format) {6 Assertions.registerCustomDateFormat(format);7 }8 public static void registerCustomDateFormat(SimpleDateFormat format) {9 Assertions.registerCustomDateFormat(format);10 }11 public static void unregisterCustomDateFormat(SimpleDateFormat format) {12 Assertions.unregisterCustomDateFormat(format);13 }14 public static void unregisterCustomDateFormat(String format) {15 Assertions.unregisterCustomDateFormat(format);16 }17 protected AssertionsForClassTypes(Object actual, Class<?> selfType) {18 super(actual, selfType);19 }20}21package org.assertj.core.api;22import java.text.SimpleDateFormat;23import java.util.Date;24public class AssertionsForClassTypes extends AbstractAssert<AssertionsForClassTypes, Object> {25 public static void registerCustomDateFormat(String format) {26 Assertions.registerCustomDateFormat(format);27 }28 public static void registerCustomDateFormat(SimpleDateFormat format) {29 Assertions.registerCustomDateFormat(format);30 }31 public static void unregisterCustomDateFormat(SimpleDateFormat format) {32 Assertions.unregisterCustomDateFormat(format);33 }34 public static void unregisterCustomDateFormat(String format) {35 Assertions.unregisterCustomDateFormat(format);36 }37 protected AssertionsForClassTypes(Object actual, Class<?> selfType) {38 super(actual, selfType);39 }40}41package org.assertj.core.api;42import java.text.SimpleDateFormat;43import java.util.Date;44public class AssertionsForClassTypes extends AbstractAssert<AssertionsForClassTypes, Object> {45 public static void registerCustomDateFormat(String format) {46 Assertions.registerCustomDateFormat(format);47 }48 public static void registerCustomDateFormat(SimpleDateFormat format) {49 Assertions.registerCustomDateFormat(format);50 }51 public static void unregisterCustomDateFormat(SimpleDateFormat format) {52 Assertions.unregisterCustomDateFormat(format);53 }54 public static void unregisterCustomDateFormat(String format) {55 Assertions.unregisterCustomDateFormat(format);56 }57 protected AssertionsForClassTypes(Object actual, Class<?> selfType) {58 super(actual, selfType);59 }60}

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1import static org.assertj.core.api.AssertionsForClassTypes.*;2import java.util.*;3import java.text.*;4import org.assertj.core.api.*;5import org.assertj.core.data.*;6import org.assertj.core.util.*;7import org.assertj.core.api.AbstractDateAssert.*;8import org.assertj.core.api.AbstractInstantAssert.*;9import org.assertj.core.api.AbstractLocalDateAssert.*;10import org.assertj.core.api.AbstractLocalDateTimeAssert.*;11import org.assertj.core.api.AbstractOffsetDateTimeAssert.*;12import org.assertj.core.api.AbstractOffsetTimeAssert.*;13import org.assertj.core.api.AbstractZonedDateTimeAssert.*;14import org.assertj.core.api.Assertions.*;15import org.assertj.core.api.AssertionsForClassTypes.*;16import org.assertj.core.api.AssertionsForInterfaceTypes.*;17import org.assertj.core.api.AssertionsForType.*;18import org.assertj.core.api.AssertionsProvider.*;19import org.assertj.core.api.Condition.*;20import org.assertj.core.api.DateAssert.*;21import org.assertj.core.api.DateAssertBase.*;22import org.assertj.core.api.DurationAssert.*;23import org.assertj.core.api.DurationAssertBase.*;24import org.assertj.core.api.FileAssert.*;25import org.assertj.core.api.FileAssertBase.*;26import org.assertj.core.api.InstantAssert.*;27import org.assertj.core.api.InstantAssertBase.*;28import org.assertj.core.api.LocalDateAssert.*;29import org.assertj.core.api.LocalDateAssertBase.*;30import org.assertj.core.api.LocalDateTimeAssert.*;31import org.assertj.core.api.LocalDateTimeAssertBase.*;32import org.assertj.core.api.LocalTimeAssert.*;33import org.assertj.core.api.LocalTimeAssertBase.*;34import org.assertj.core.api.OffsetDateTimeAssert.*;35import org.assertj.core.api.OffsetDateTimeAssertBase.*;36import org.assertj.core.api.OffsetTimeAssert.*;37import org.assertj.core.api.OffsetTimeAssertBase.*;38import org.assertj.core.api.ThrowableAssert.*;39import org.assertj.core.api.ThrowableAssertAlternative.*;40import org.assertj.core.api.ThrowableAssertBase.*;41import org.assertj.core.api.ThrowableAssertCatchClause.*;42import org.assertj.core.api.ThrowableAssertNoCauseClause.*;43import org.assertj.core.api.ThrowableAssertThrownByClause.*;44import org.assertj.core.api.ThrowableAssertWithCauseClause.*;45import org.assertj.core.api.ThrowableAssertWithMessageContaining.*;46import org.assertj.core.api.ThrowableAssertWithMessageContainingAll.*;47import org.assertj.core.api.ThrowableAssertWithMessageContainingAny.*;48import org.assertj.core.api.ThrowableAssertWithMessageEndingWith.*;49import org.assertj.core.api.ThrowableAssertWithMessageStartingWith.*;50import org.assertj.core.api.ThrowableAssertWithThrowable.*;51import org.assertj.core.api.ThrowableAssertWithThrowableContaining.*;52import org.assertj.core.api.ThrowableAssertWithThrowableContainingAll.*;53import org.assertj.core.api

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1public class Assertion {2 public static void main(String[] args) {3 Assertions.registerCustomDateFormat("yyyy-MM-dd");4 Assertions.assertThat("2018-03-05").isEqualTo("2018-03-06");5 }6}7registerCustomDateFormat(String dateFormat)8registerCustomDateFormat(String dateFormat)9registerCustomDateTimeFormat(String dateTimeFormat)10registerCustomTimeFormat(String timeFormat)11assertThat(Instant actual)12assertThat(LocalDateTime actual)13assertThat(LocalDate actual)14assertThat(LocalTime actual)

Full Screen

Full Screen

registerCustomDateFormat

Using AI Code Generation

copy

Full Screen

1public class AssertJCustomDateFormat {2 public static void main(String[] args) {3 Assertions.registerCustomDateFormat("dd-MM-yyyy");4 Assertions.assertThat(Date.valueOf("2011-01-01")).isAfter("02-01-2010");5 Assertions.assertThat(Date.valueOf("2011-01-01")).isBefore("02-01-2012");6 Assertions.assertThat(Date.valueOf("2011-01-01")).isEqualTo("01-01-2011");7 }8}9assertThat(Date.valueOf("2011-01-01")).isAfter("02-01-2010");10assertThat(Date.valueOf("2011-01-01")).isBefore("02-01-2012");11assertThat(Date.valueOf("2011-01-01")).isEqualTo("01-01-2011");

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful