Best Assertj code snippet using org.assertj.core.error.ShouldBeEqualWithTimePrecision.ShouldBeEqualWithTimePrecision
Source:Dates_assertIsEqualWithPrecision_Test.java
...14import java.util.Calendar;15import java.util.Date;16import java.util.concurrent.TimeUnit;17import org.assertj.core.api.AssertionInfo;18import org.assertj.core.error.ShouldBeEqualWithTimePrecision;19import org.assertj.core.internal.DatesBaseTest;20import org.assertj.core.test.TestData;21import org.assertj.core.test.TestFailures;22import org.junit.jupiter.api.Test;23import org.mockito.Mockito;24/**25 * Tests for <code>{@link org.assertj.core.internal.Dates#assertIsEqualWithPrecision(org.assertj.core.api.AssertionInfo, java.util.Date, java.util.Date, java.util.concurrent.TimeUnit)}</code>.26 *27 * @author William Delanoue28 */29public class Dates_assertIsEqualWithPrecision_Test extends DatesBaseTest {30 @Test31 public void should_pass_regardless_of_millisecond_fields_values() {32 AssertionInfo info = TestData.someInfo();33 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T12:23:35.998");34 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.MILLISECONDS);35 }36 @Test37 public void should_pass_regardless_of_second_and_millisecond_fields_values() {38 AssertionInfo info = TestData.someInfo();39 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T12:23:36.999");40 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.SECONDS);41 }42 @Test43 public void should_pass_regardless_of_minute_second_and_millisecond_fields_values() {44 AssertionInfo info = TestData.someInfo();45 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T12:24:35.999");46 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.MINUTES);47 }48 @Test49 public void should_pass_regardless_of_hour_minute_second_and_millisecond_fields_values() {50 AssertionInfo info = TestData.someInfo();51 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T17:24:35.999");52 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.HOURS);53 // test with hour values that are equals if you don't take AM/PM into account (1PM == 13).54 actual = DatesBaseTest.parseDatetimeWithMs("2011-09-27T13:23:35.999");// 01PM55 other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T01:23:35.999");56 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.HOURS);57 }58 @Test59 public void should_pass_if_day_not_equal() {60 AssertionInfo info = TestData.someInfo();61 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-28T12:23:35.999");62 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.DAYS);63 }64 @Test65 public void should_fail_if_ms_fields_differ() {66 AssertionInfo info = TestData.someInfo();67 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T12:23:35.998");68 try {69 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.MICROSECONDS);70 } catch (AssertionError e) {71 Mockito.verify(failures).failure(info, ShouldBeEqualWithTimePrecision.shouldBeEqual(actual, other, TimeUnit.MICROSECONDS));72 return;73 }74 TestFailures.failBecauseExpectedAssertionErrorWasNotThrown();75 }76 @Test77 public void should_fail_if_second_fields_differ() {78 AssertionInfo info = TestData.someInfo();79 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T12:23:36.999");80 try {81 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.MILLISECONDS);82 } catch (AssertionError e) {83 Mockito.verify(failures).failure(info, ShouldBeEqualWithTimePrecision.shouldBeEqual(actual, other, TimeUnit.MILLISECONDS));84 return;85 }86 TestFailures.failBecauseExpectedAssertionErrorWasNotThrown();87 }88 @Test89 public void should_fail_if_minute_fields_differ() {90 AssertionInfo info = TestData.someInfo();91 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T12:24:35.999");92 try {93 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.SECONDS);94 } catch (AssertionError e) {95 Mockito.verify(failures).failure(info, ShouldBeEqualWithTimePrecision.shouldBeEqual(actual, other, TimeUnit.SECONDS));96 return;97 }98 TestFailures.failBecauseExpectedAssertionErrorWasNotThrown();99 }100 @Test101 public void should_fail_if_hour_fields_differ() {102 AssertionInfo info = TestData.someInfo();103 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-27T13:23:35.999");104 try {105 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.MINUTES);106 } catch (AssertionError e) {107 Mockito.verify(failures).failure(info, ShouldBeEqualWithTimePrecision.shouldBeEqual(actual, other, TimeUnit.MINUTES));108 return;109 }110 TestFailures.failBecauseExpectedAssertionErrorWasNotThrown();111 }112 @Test113 public void should_fail_if_hour_fields_differ_but_are_equal_when_am_pm_not_taken_into_account() {114 AssertionInfo info = TestData.someInfo();115 final Date now = new Date();116 // build date differing only by AM/PM value 18 = 6PM <-> 6AM117 Calendar calendar1 = Calendar.getInstance();118 calendar1.setTime(now);119 calendar1.set(Calendar.HOUR_OF_DAY, 18);120 Calendar calendar2 = Calendar.getInstance();121 calendar2.setTime(now);122 calendar2.set(Calendar.HOUR_OF_DAY, 6);123 Date date1 = calendar1.getTime();124 Date date2 = calendar2.getTime();125 try {126 dates.assertIsEqualWithPrecision(info, date1, date2, TimeUnit.MINUTES);127 } catch (AssertionError e) {128 Mockito.verify(failures).failure(info, ShouldBeEqualWithTimePrecision.shouldBeEqual(date1, date2, TimeUnit.MINUTES));129 return;130 }131 TestFailures.failBecauseExpectedAssertionErrorWasNotThrown();132 }133 @Test134 public void should_fail_if_day_not_equal() {135 AssertionInfo info = TestData.someInfo();136 Date other = DatesBaseTest.parseDatetimeWithMs("2011-09-28T12:23:35.999");137 try {138 dates.assertIsEqualWithPrecision(info, actual, other, TimeUnit.HOURS);139 } catch (AssertionError e) {140 Mockito.verify(failures).failure(info, ShouldBeEqualWithTimePrecision.shouldBeEqual(actual, other, TimeUnit.HOURS));141 return;142 }143 TestFailures.failBecauseExpectedAssertionErrorWasNotThrown();144 }145}...
Source:ShouldBeEqualWithTimePrecision_create_Test.java
...18import org.assertj.core.util.DateUtil;19import org.junit.jupiter.api.Test;20/**21 * Tests for22 * <code>{@link ShouldBeEqualWithTimePrecision#create(org.assertj.core.description.Description, org.assertj.core.presentation.Representation)}</code>23 * .24 *25 * @author Joel Costigliola26 */27public class ShouldBeEqualWithTimePrecision_create_Test {28 @Test29 public void should_create_error_message_ignoring_milliseconds() {30 ErrorMessageFactory factory = ShouldBeEqualWithTimePrecision.shouldBeEqual(DateUtil.parseDatetimeWithMs("2011-01-01T05:00:00.000"), DateUtil.parseDatetimeWithMs("2011-01-01T06:05:17.003"), TimeUnit.MILLISECONDS);31 String message = factory.create(new TextDescription("Test"), new StandardRepresentation());32 Assertions.assertThat(message).isEqualTo(String.format(("[Test] %nExpecting:%n" + (((" <2011-01-01T05:00:00.000>%n" + "to have same year, month, day, hour, minute and second as:%n") + " <2011-01-01T06:05:17.003>%n") + "but had not."))));33 }34 @Test35 public void should_create_error_message_ignoring_seconds() {36 ErrorMessageFactory factory = ShouldBeEqualWithTimePrecision.shouldBeEqual(DateUtil.parseDatetimeWithMs("2011-01-01T05:00:00.000"), DateUtil.parseDatetimeWithMs("2011-01-01T06:05:17.003"), TimeUnit.SECONDS);37 String message = factory.create(new TextDescription("Test"), new StandardRepresentation());38 Assertions.assertThat(message).isEqualTo(String.format(("[Test] %nExpecting:%n" + (((" <2011-01-01T05:00:00.000>%n" + "to have same year, month, day, hour and minute as:%n") + " <2011-01-01T06:05:17.003>%n") + "but had not."))));39 }40 @Test41 public void should_create_error_message_ignoring_minutes() {42 ErrorMessageFactory factory = ShouldBeEqualWithTimePrecision.shouldBeEqual(DateUtil.parseDatetimeWithMs("2011-01-01T05:00:00.000"), DateUtil.parseDatetimeWithMs("2011-01-01T06:05:17.003"), TimeUnit.MINUTES);43 String message = factory.create(new TextDescription("Test"), new StandardRepresentation());44 Assertions.assertThat(message).isEqualTo(String.format(("[Test] %nExpecting:%n" + (((" <2011-01-01T05:00:00.000>%n" + "to have same year, month, day and hour as:%n") + " <2011-01-01T06:05:17.003>%n") + "but had not."))));45 }46 @Test47 public void should_create_error_message_ignoring_hours() {48 ErrorMessageFactory factory = ShouldBeEqualWithTimePrecision.shouldBeEqual(DateUtil.parseDatetimeWithMs("2011-01-01T05:00:00.000"), DateUtil.parseDatetimeWithMs("2011-01-01T06:05:17.003"), TimeUnit.HOURS);49 String message = factory.create(new TextDescription("Test"), new StandardRepresentation());50 Assertions.assertThat(message).isEqualTo(String.format(("[Test] %nExpecting:%n" + (((" <2011-01-01T05:00:00.000>%n" + "to have same year, month and day as:%n") + " <2011-01-01T06:05:17.003>%n") + "but had not."))));51 }52}...
Source:ShouldBeEqualWithTimePrecision.java
...19 *20 * @author William Delanoue21 * @author Joel Costigliola22 */23public class ShouldBeEqualWithTimePrecision extends BasicErrorMessageFactory {24 /**25 * Creates a new <code>{@link org.assertj.core.error.ShouldBeEqualWithTimePrecision}</code>.26 *27 * @param actual the actual value in the failed assertion.28 * @param expected the expected value in the failed assertion.29 * @param precision the {@link TimeUnit} used to compare actual with expected.30 * @return the created {@code AssertionErrorFactory}.31 */32 public static ErrorMessageFactory shouldBeEqual(Date actual, Date expected, TimeUnit precision) {33 return new ShouldBeEqualWithTimePrecision(actual, expected, precision);34 }35 private ShouldBeEqualWithTimePrecision(Date actual, Date expected, TimeUnit precision) {36 super(buildErrorMessageTemplate(precision), actual, expected);37 }38 private static String buildErrorMessageTemplate(final TimeUnit precision) {39 String fields = "";40 String lastField = "";41 if (precision.equals(TimeUnit.HOURS)) {42 lastField = "day";43 } else if (precision.equals(TimeUnit.MINUTES)) {44 fields = ", day";45 lastField = "hour";46 } else if (precision.equals(TimeUnit.SECONDS)) {47 fields = ", day, hour";48 lastField = "minute";49 } else if (precision.equals(TimeUnit.MILLISECONDS)) {...
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1package com.mycompany.app;2import org.assertj.core.error.ShouldBeEqualWithTimePrecision;3{4 public static void main( String[] args )5 {6 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision();7 shouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(1,2,3,4);8 }9}10 at org.assertj.core.error.ShouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(ShouldBeEqualWithTimePrecision.java:24)11 at com.mycompany.app.App.main(App.java:14)12package com.mycompany.app;13import org.assertj.core.error.ShouldBeEqualWithTimePrecision;14{15 public static void main( String[] args )16 {17 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision();18 shouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(1,2,3,4);19 }20}21 at org.assertj.core.error.ShouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(ShouldBeEqualWithTimePrecision.java:24)22 at com.mycompany.app.App.main(App.java:14)23package com.mycompany.app;24import org.assertj.core.error.ShouldBeEqualWithTimePrecision;25{26 public static void main( String[] args )27 {28 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision();29 shouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(1,2,3,4);30 }31}32 at org.assertj.core.error.ShouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(ShouldBeEqualWithTimePrecision.java:24)33 at com.mycompany.app.App.main(App.java:14)34package com.mycompany.app;35import org.assertj.core.error.ShouldBeEqualWithTimePrecision;
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1package org.assertj.core.error;2import org.assertj.core.description.Description;3import org.assertj.core.presentation.Representation;4import java.time.temporal.TemporalUnit;5import java.util.Date;6public class ShouldBeEqualWithTimePrecision extends BasicErrorMessageFactory {7 public static ErrorMessageFactory shouldBeEqualWithTimePrecision(Date actual, Date expected, TemporalUnit precision, Representation representation) {8 return new ShouldBeEqualWithTimePrecision(actual, expected, precision, representation);9 }10 private ShouldBeEqualWithTimePrecision(Date actual, Date expected, TemporalUnit precision, Representation representation) {11 super("%nExpecting:%n <%s>%nto be close to:%n <%s>%nwithin %s precision but difference was %s.", representation.toStringOf(actual), representation.toStringOf(expected), precision, getDifference(actual, expected, precision));12 }13 private static long getDifference(Date actual, Date expected, TemporalUnit precision) {14 long difference = Math.abs(actual.getTime() - expected.getTime());15 return precision.getDuration().toMillis() - (difference % precision.getDuration().toMillis());16 }17}18package org.assertj.core.error;19import org.assertj.core.description.Description;20import org.assertj.core.presentation.Representation;21import java.time.temporal.TemporalUnit;22import java.util.Date;23public class ShouldBeEqualWithTimePrecision extends BasicErrorMessageFactory {24 public static ErrorMessageFactory shouldBeEqualWithTimePrecision(Date actual, Date expected, TemporalUnit precision, Representation representation) {25 return new ShouldBeEqualWithTimePrecision(actual, expected, precision, representation);26 }27 private ShouldBeEqualWithTimePrecision(Date actual, Date expected, TemporalUnit precision, Representation representation) {28 super("%nExpecting:%n <%s>%nto be close to:%n <%s>%nwithin %s precision but difference was %s.", representation.toStringOf(actual), representation.toStringOf(expected), precision, getDifference(actual, expected, precision));29 }30 private static long getDifference(Date actual, Date expected, TemporalUnit precision) {31 long difference = Math.abs(actual.getTime() - expected.getTime());32 return precision.getDuration().toMillis() - (difference % precision.getDuration().toMillis());33 }34}
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1import org.assertj.core.api.Assertions;2import org.assertj.core.error.ShouldBeEqualWithTimePrecision;3import org.assertj.core.internal.Dates;4import java.util.Date;5public class AssertjTest {6 public static void main(String[] args) {7 Date date1 = new Date();8 Date date2 = new Date();9 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(date1, date2, 1000, 1000);10 System.out.println(shouldBeEqualWithTimePrecision);11 }12}13import org.assertj.core.api.Assertions;14import org.assertj.core.error.ShouldBeEqualWithTimePrecision;15import org.assertj.core.internal.Dates;16import java.util.Date;17public class AssertjTest {18 public static void main(String[] args) {19 Date date1 = new Date();20 Date date2 = new Date();21 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(date1, date2, 1000, 1000);22 System.out.println(shouldBeEqualWithTimePrecision);23 }24}25import org.assertj.core.api.Assertions;26import org.assertj.core.error.ShouldBeEqualWithTimePrecision;27import org.assertj.core.internal.Dates;28import java.util.Date;29public class AssertjTest {30 public static void main(String[] args) {31 Date date1 = new Date();32 Date date2 = new Date();33 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(date1, date2, 1000, 1000);34 System.out.println(shouldBeEqualWithTimePrecision);35 }36}37import org.assertj.core.api.Assertions;38import org
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1import static org.assertj.core.api.Assertions.assertThat;2import java.time.LocalDateTime;3import java.time.LocalTime;4import java.time.ZoneId;5import java.time.ZonedDateTime;6import java.util.Date;7public class Test {8 public static void main(String[] args) {9 Date date1 = Date.from(LocalDateTime.of(2017, 10, 12, 12, 0, 0).atZone(ZoneId.systemDefault()).toInstant());10 Date date2 = Date.from(LocalDateTime.of(2017, 10, 12, 12, 0, 1).atZone(ZoneId.systemDefault()).toInstant());11 assertThat(date1).isEqualTo(date2, ZonedDateTime.of(2017, 10, 12, 12, 0, 0, 0, ZoneId.systemDefault()).toInstant().toEpochMilli());12 }13}14by comparing values using 'ZonedDateTime.toInstant().toEpochMilli()'15assertThat(date1).isEqualTo(date2, ZonedDateTime.of(2017, 10, 12, 12, 0, 0, 0, ZoneId.systemDefault()).toInstant().toEpochMilli());16ZonedDateTime.of(2017, 10, 12, 12, 0, 0, 0, ZoneId.systemDefault()).toInstant().toEpochMilli()17ZonedDateTime.of(2017, 10, 12, 12, 0, 0, 0, ZoneId.systemDefault())18ZonedDateTime.of(2017, 10, 12, 12, 0, 0, 0, ZoneId.systemDefault()).toInstant().toEpochMilli()
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1import org.assertj.core.api.Assertions;2import org.assertj.core.error.ShouldBeEqualWithTimePrecision;3import org.assertj.core.api.ThrowableAssert.ThrowingCallable;4import java.util.Date;5public class ShouldBeEqualWithTimePrecisionExample {6 public static void main(String[] args) {7 Date date1 = new Date(0);8 Date date2 = new Date(1);9 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(date1, date2, 1, 1);10 System.out.println(shouldBeEqualWithTimePrecision);11 }12}
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1import org.assertj.core.error.ShouldBeEqualWithTimePrecision;2public class AssertjCoreExample {3 public static void main(String[] args) {4 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = ShouldBeEqualWithTimePrecision.shouldBeEqualWithTimePrecision(new Date(), new Date(), ChronoUnit.HOURS, 10);5 System.out.println(shouldBeEqualWithTimePrecision);6 }7}
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1package org.assertj.core.error;2import java.time.LocalTime;3import org.assertj.core.internal.TestDescription;4import org.junit.Test;5public class ShouldBeEqualWithTimePrecisionExample {6public void test1() {7 LocalTime time = LocalTime.of(1, 1, 1, 1);8 LocalTime otherTime = LocalTime.of(1, 1, 1, 1);9 try {10 new ShouldBeEqualWithTimePrecision(time, otherTime, LocalTime.MILLIS_OF_SECOND, 1).create(new TestDescription("TEST"));11 } catch (AssertionError e) {12 System.out.println(e.getMessage());13 }14}15}
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1public class AssertJCoreErrorShouldBeEqualWithTimePrecision1 {2 public static void main(String[] args) {3 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(new Date(), new Date(), ChronoUnit.SECONDS, 1);4 System.out.println(shouldBeEqualWithTimePrecision);5 }6}7public class AssertJCoreErrorShouldBeEqualWithTimePrecision2 {8 public static void main(String[] args) {9 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(new Date(), new Date(), ChronoUnit.SECONDS, 1);10 System.out.println(shouldBeEqualWithTimePrecision.getActual());11 System.out.println(shouldBeEqualWithTimePrecision.getExpected());12 System.out.println(shouldBeEqualWithTimePrecision.getChronoUnit());13 System.out.println(shouldBeEqualWithTimePrecision.getChronoUnitValue());14 }15}16public class AssertJCoreErrorShouldBeEqualWithTimePrecision3 {17 public static void main(String[] args) {18 ShouldBeEqualWithTimePrecision shouldBeEqualWithTimePrecision = new ShouldBeEqualWithTimePrecision(new Date(), new Date(), ChronoUnit.SECONDS, 1);19 System.out.println(shouldBeEqualWithTimePrecision.getChronoUnitValue());20 }21}22public class AssertJCoreErrorShouldBeEqualWithTimePrecision4 {23 public static void main(String[] args) {
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1public class AssertjCoreExample1 {2 public static void main(String[] args) {3 LocalDate date = LocalDate.of(2016, 1, 1);4 LocalDate date2 = LocalDate.of(2016, 1, 2);5 Assertions.assertThat(date).isEqualTo(date2, Assertions.within(1, ChronoUnit.DAYS));6 }7}8by less than 1 Day(s) but difference was 1 Day(s)9public class AssertjCoreExample2 {10 public static void main(String[] args) {11 LocalDate date = LocalDate.of(2016, 1, 1);12 LocalDate date2 = LocalDate.of(2016, 1, 2);13 Assertions.assertThat(date).isEqualTo(date2, Assertions.within(1, ChronoUnit.MONTHS));14 }15}16by less than 1 Month(s) but difference was 1 Month(s)17public class AssertjCoreExample3 {18 public static void main(String[] args) {19 LocalDate date = LocalDate.of(2016, 1, 1);20 LocalDate date2 = LocalDate.of(2016, 1, 2);21 Assertions.assertThat(date).isEqualTo(date2, Assertions.within(1, ChronoUnit.YEARS));22 }23}24by less than 1 Year(s) but difference was 1 Year(s)25public class AssertjCoreExample4 {26 public static void main(String[] args) {27 LocalDate date = LocalDate.of(201
ShouldBeEqualWithTimePrecision
Using AI Code Generation
1public class java {2 public static void main(String args[]){3 ShouldBeEqualWithTimePrecision obj = new ShouldBeEqualWithTimePrecision();4 obj.ShouldBeEqualWithTimePrecision(1, 2, 3, 4);5 }6}
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!