Best Mockito code snippet using org.mockito.ArgumentMatchers.floatThat
Source:MatchersMixin.java
...238 default <T> T eq(T value) {239 return ArgumentMatchers.eq(value);240 }241 /**242 * Delegate call to public static float org.mockito.ArgumentMatchers.floatThat(org.mockito.ArgumentMatcher<java.lang.Float>)243 * {@link org.mockito.ArgumentMatchers#floatThat(org.mockito.ArgumentMatcher)}244 */245 default float floatThat(ArgumentMatcher<Float> matcher) {246 return ArgumentMatchers.floatThat(matcher);247 }248 /**249 * Delegate call to public static int org.mockito.ArgumentMatchers.intThat(org.mockito.ArgumentMatcher<java.lang.Integer>)250 * {@link org.mockito.ArgumentMatchers#intThat(org.mockito.ArgumentMatcher)}251 */252 default int intThat(ArgumentMatcher<Integer> matcher) {253 return ArgumentMatchers.intThat(matcher);254 }255 /**256 * Delegate call to public static <T> T org.mockito.ArgumentMatchers.isA(java.lang.Class<T>)257 * {@link org.mockito.ArgumentMatchers#isA(java.lang.Class)}258 */259 default <T> T isA(Class<T> type) {260 return ArgumentMatchers.isA(type);...
Source:FlingTests.java
...16package androidx.dynamicanimation.tests;17import static org.junit.Assert.assertEquals;18import static org.junit.Assert.assertTrue;19import static org.mockito.ArgumentMatchers.eq;20import static org.mockito.ArgumentMatchers.floatThat;21import static org.mockito.Mockito.mock;22import static org.mockito.Mockito.timeout;23import static org.mockito.Mockito.verify;24import android.view.View;25import androidx.dynamicanimation.animation.DynamicAnimation;26import androidx.dynamicanimation.animation.FlingAnimation;27import androidx.dynamicanimation.animation.FloatPropertyCompat;28import androidx.dynamicanimation.animation.FloatValueHolder;29import androidx.dynamicanimation.test.R;30import androidx.test.ext.junit.runners.AndroidJUnit4;31import androidx.test.filters.LargeTest;32import androidx.test.platform.app.InstrumentationRegistry;33import androidx.test.rule.ActivityTestRule;34import org.junit.Before;35import org.junit.Rule;36import org.junit.Test;37import org.junit.rules.ExpectedException;38import org.junit.runner.RunWith;39import org.mockito.internal.matchers.GreaterThan;40import org.mockito.internal.matchers.LessThan;41@LargeTest42@RunWith(AndroidJUnit4.class)43public class FlingTests {44 @Rule45 public final ActivityTestRule<AnimationActivity> mActivityTestRule;46 public View mView1;47 public View mView2;48 @Rule49 public ExpectedException mExpectedException = ExpectedException.none();50 public FlingTests() {51 mActivityTestRule = new ActivityTestRule<>(AnimationActivity.class);52 }53 @Before54 public void setup() throws Exception {55 mView1 = mActivityTestRule.getActivity().findViewById(R.id.anim_view);56 mView2 = mActivityTestRule.getActivity().findViewById(R.id.anim_another_view);57 }58 /**59 * Test that custom properties are supported.60 */61 @Test62 public void testCustomProperties() {63 final Object animObj = new Object();64 FloatPropertyCompat property = new FloatPropertyCompat("") {65 private float mValue = 0f;66 @Override67 public float getValue(Object object) {68 assertEquals(animObj, object);69 return mValue;70 }71 @Override72 public void setValue(Object object, float value) {73 assertEquals(animObj, object);74 assertTrue(value > mValue);75 assertTrue(value >= 100);76 mValue = value;77 }78 };79 final FlingAnimation anim = new FlingAnimation(animObj, property);80 DynamicAnimation.OnAnimationEndListener listener = mock(81 DynamicAnimation.OnAnimationEndListener.class);82 anim.addEndListener(listener);83 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {84 @Override85 public void run() {86 anim.setStartValue(100).setStartVelocity(2000).start();87 }88 });89 verify(listener, timeout(2000)).onAnimationEnd(eq(anim), eq(false), floatThat(90 new GreaterThan(110f)), eq(0f));91 }92 /**93 * Test that fling animation can work with a single property without an object.94 */95 @Test96 public void testFloatValueHolder() {97 FloatValueHolder floatValueHolder = new FloatValueHolder();98 assertEquals(0.0f, floatValueHolder.getValue(), 0.01f);99 final FlingAnimation anim = new FlingAnimation(floatValueHolder).setStartVelocity(-2500);100 DynamicAnimation.OnAnimationEndListener listener = mock(101 DynamicAnimation.OnAnimationEndListener.class);102 anim.addEndListener(listener);103 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {104 @Override105 public void run() {106 anim.start();107 }108 });109 verify(listener, timeout(2000)).onAnimationEnd(eq(anim), eq(false), floatThat(110 new LessThan(-50f)), eq(0f));111 }112 /**113 * Test that friction does affect how fast the slow down happens. Fling animation with114 * higher friction should finish first.115 */116 @Test117 public void testFriction() {118 FloatValueHolder floatValueHolder = new FloatValueHolder();119 float lowFriction = 0.5f;120 float highFriction = 2f;121 final FlingAnimation animLowFriction = new FlingAnimation(floatValueHolder);122 final FlingAnimation animHighFriction = new FlingAnimation(floatValueHolder);123 animHighFriction.setFriction(highFriction);124 animLowFriction.setFriction(lowFriction);125 DynamicAnimation.OnAnimationEndListener listener = mock(126 DynamicAnimation.OnAnimationEndListener.class);127 animHighFriction.addEndListener(listener);128 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {129 @Override130 public void run() {131 animHighFriction.setStartVelocity(5000).setStartValue(0).start();132 animLowFriction.setStartVelocity(5000).setStartValue(0).start();133 }134 });135 verify(listener, timeout(1000)).onAnimationEnd(eq(animHighFriction), eq(false), floatThat(136 new GreaterThan(200f)), eq(0f));137 // By the time high scalar animation finishes, the lower friction animation should still be138 // running.139 assertTrue(animLowFriction.isRunning());140 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {141 @Override142 public void run() {143 animLowFriction.cancel();144 }145 });146 assertEquals(lowFriction, animLowFriction.getFriction(), 0f);147 assertEquals(highFriction, animHighFriction.getFriction(), 0f);148 }149 /**150 * Test that velocity threshold does affect how early fling animation ends. An animation with151 * higher velocity threshold should finish first.152 */153 @Test154 public void testVelocityThreshold() {155 FloatValueHolder floatValueHolder = new FloatValueHolder();156 float lowThreshold = 5f;157 final float highThreshold = 10f;158 final FlingAnimation animLowThreshold = new FlingAnimation(floatValueHolder);159 final FlingAnimation animHighThreshold = new FlingAnimation(floatValueHolder);160 animHighThreshold.setMinimumVisibleChange(highThreshold);161 animHighThreshold.addUpdateListener(new DynamicAnimation.OnAnimationUpdateListener() {162 @Override163 public void onAnimationUpdate(DynamicAnimation animation, float value, float velocity) {164 if (velocity != 0f) {165 // Other than last frame, velocity should always be above threshold166 assertTrue(velocity >= highThreshold);167 }168 }169 });170 animLowThreshold.setMinimumVisibleChange(lowThreshold);171 DynamicAnimation.OnAnimationEndListener listener = mock(172 DynamicAnimation.OnAnimationEndListener.class);173 animHighThreshold.addEndListener(listener);174 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {175 @Override176 public void run() {177 animHighThreshold.setStartVelocity(2000).setStartValue(0).start();178 animLowThreshold.setStartVelocity(2000).setStartValue(0).start();179 }180 });181 verify(listener, timeout(1000)).onAnimationEnd(eq(animHighThreshold), eq(false), floatThat(182 new GreaterThan(200f)), eq(0f));183 // By the time high scalar animation finishes, the lower friction animation should still be184 // running.185 assertTrue(animLowThreshold.isRunning());186 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {187 @Override188 public void run() {189 animLowThreshold.cancel();190 }191 });192 assertEquals(lowThreshold, animLowThreshold.getMinimumVisibleChange(), 0f);193 assertEquals(highThreshold, animHighThreshold.getMinimumVisibleChange(), 0f);194 }195}...
Source:WithArgumentMatchers.java
...279 default long longThat(final ArgumentMatcher<Long> matcher) {280 return ArgumentMatchers.longThat(matcher);281 }282 /**283 * @see ArgumentMatchers#floatThat(ArgumentMatcher)284 */285 default float floatThat(final ArgumentMatcher<Float> matcher) {286 return ArgumentMatchers.floatThat(matcher);287 }288 /**289 * @see ArgumentMatchers#doubleThat(ArgumentMatcher)290 */291 default double doubleThat(final ArgumentMatcher<Double> matcher) {292 return ArgumentMatchers.doubleThat(matcher);293 }294}...
Source:PieChartParameterizedTest.java
...22import static java.util.Arrays.asList;23import static org.mockito.ArgumentMatchers.any;24import static org.mockito.ArgumentMatchers.anyFloat;25import static org.mockito.ArgumentMatchers.anyInt;26import static org.mockito.ArgumentMatchers.floatThat;27import static org.mockito.Mockito.inOrder;28import static org.mockito.Mockito.mock;29import static org.mockito.Mockito.when;30@RunWith(Parameterized.class)31@SuppressWarnings("WeakerAccess")32public class PieChartParameterizedTest {33 private static final double PRECISION = 2 * 1E-3F;34 @Parameter()35 public double[] values;36 @Parameter(1)37 public double[] startAngles;38 @Parameter(2)39 public double[] arcLengths;40 @Parameter(3)41 public ColorWrap[] colors;42 @Mock43 GraphicsWrap graphics;44 @Mock45 PlotSheet plot;46 PieChart pieChart;47 private MockedStatic<Color> colorMockedStatic;48 @Before49 public void setUp() {50 colorMockedStatic = Mockito.mockStatic(Color.class);51 MockitoAnnotations.openMocks(this);52 when(Color.argb(anyInt(), anyInt(), anyInt(), anyInt())).thenReturn(0);53 when(plot.getFrameThickness()).thenReturn(new float[]{0, 0, 0, 0});54 FontMetricsWrap fm = mock(FontMetricsWrap.class);55 when(fm.getHeight()).thenReturn(10f);56 when(fm.stringWidth(any(String.class))).thenReturn(30f);57 when(graphics.getFontMetrics()).thenReturn(fm);58 RectangleWrap r = createRectangleMock(100, 100);59 when(graphics.getClipBounds()).thenReturn(r);60 pieChart = new PieChart(plot, values, colors);61 }62 @After63 public void tearDown() {64 colorMockedStatic.close();65 }66 @Test67 public void testPaintDrawsAllArcs() {68 pieChart.paint(graphics);69 // ordered verification is used to prevent failures when there are tiny adjacent sectors70 InOrder inOrder = inOrder(graphics);71 for (int i = 0; i < values.length; i++) {72 if (arcLengths[i] == 0) continue;73 inOrder.verify(graphics).setColor(colors[i]);74 inOrder.verify(graphics).fillArc(anyFloat(), anyFloat(), anyFloat(), anyFloat(),75 floatThat(closeTo(startAngles[i])),76 floatThat(closeTo(arcLengths[i])));77 }78 }79 private static FloatMatcher closeTo(double v) {80 return FloatMatcher.closeTo(v, PRECISION);81 }82 @Parameterized.Parameters83 public static Collection<Object[]> data() {84 return createParametersCollection(asList(85 values(1),86 values(0, 1),87 values(1, 0),88 values(1, 0, 1),89 // arrays of equal values of various sizes90 equalValues(2),...
Source:PieChartTest.java
...12import org.mockito.MockitoAnnotations;13import static org.mockito.ArgumentMatchers.anyFloat;14import static org.mockito.ArgumentMatchers.anyInt;15import static org.mockito.ArgumentMatchers.anyString;16import static org.mockito.ArgumentMatchers.floatThat;17import static org.mockito.Mockito.mock;18import static org.mockito.Mockito.mockStatic;19import static org.mockito.Mockito.never;20import static org.mockito.Mockito.verify;21import static org.mockito.Mockito.when;22public class PieChartTest {23 private static final double PRECISION = 1E-3F;24 @Mock25 private GraphicsWrap graphics;26 @Mock27 private PlotSheet plot;28 private PieChart pieChart;29 private MockedStatic<Color> colorMockedStatic;30 @Before31 public void setUp() {32 colorMockedStatic = mockStatic(Color.class);33 MockitoAnnotations.openMocks(this);34 when(Color.argb(anyInt(), anyInt(), anyInt(), anyInt())).thenReturn(0);35 when(plot.getFrameThickness()).thenReturn(new float[]{0, 0, 0, 0});36 FontMetricsWrap fm = mock(FontMetricsWrap.class);37 when(fm.getHeight()).thenReturn(10f);38 when(fm.stringWidth(anyString())).thenReturn(30f);39 when(graphics.getFontMetrics()).thenReturn(fm);40 }41 @After42 public void tearDown() {43 colorMockedStatic.close();44 }45 @Test(expected = IllegalArgumentException.class)46 public void constructorShouldThrowIfSizesMismatch() {47 new PieChart(plot, new double[]{1, 1}, new ColorWrap[]{ColorWrap.RED});48 }49 @Test50 public void paintShouldNotDrawAnythingIfValuesAreZero() {51 pieChart = new PieChart(plot, new double[]{0, 0}, new ColorWrap[]{52 ColorWrap.RED, ColorWrap.GREEN});53 pieChart.paint(graphics);54 verify(graphics, never()).fillArc(anyFloat(), anyFloat(), anyFloat(), anyFloat(),55 anyFloat(), anyFloat());56 }57 @Test58 public void paintShouldDrawFullRedCircleIfOneValue() {59 pieChart = new PieChart(plot, new double[]{1.}, new ColorWrap[]{60 ColorWrap.RED});61 RectangleWrap r = createRectangleMock(100, 100);62 when(graphics.getClipBounds()).thenReturn(r);63 pieChart.paint(graphics);64 verify(graphics).setColor(ColorWrap.RED);65 verify(graphics).fillArc(anyFloat(), anyFloat(), anyFloat(), anyFloat(),66 floatThat(closeTo(-90F)),67 floatThat(closeTo(360F)));68 }69 @Test70 public void paintShouldDrawTwoSectorsWithGivenColors() {71 pieChart = new PieChart(plot, new double[]{1, 1}, new ColorWrap[]{72 ColorWrap.RED, ColorWrap.GREEN});73 RectangleWrap r = createRectangleMock(100, 100);74 when(graphics.getClipBounds()).thenReturn(r);75 pieChart.paint(graphics);76 verify(graphics).setColor(ColorWrap.RED);77 verify(graphics).fillArc(anyFloat(), anyFloat(), anyFloat(), anyFloat(),78 floatThat(closeTo(-90F)),79 floatThat(closeTo(180F)));80 verify(graphics).setColor(ColorWrap.GREEN);81 verify(graphics).fillArc(anyFloat(), anyFloat(), anyFloat(), anyFloat(),82 floatThat(closeTo(90F)),83 floatThat(closeTo(180F)));84 }85 public static RectangleWrap createRectangleMock(int width, int height) {86 RectangleWrap r = mock(RectangleWrap.class);87 r.width = width;88 r.height = height;89 when(r.width()).thenReturn(width);90 when(r.height()).thenReturn(height);91 return r;92 }93 private static FloatMatcher closeTo(double v) {94 return FloatMatcher.closeTo(v, PRECISION);95 }96}...
floatThat
Using AI Code Generation
1public class 1 {2 public static void main(String[] args) {3 List mockedList = mock(List.class);4 when(mockedList.get(anyInt())).thenReturn("element");5 System.out.println(mockedList.get(999));6 }7}8public class 2 {9 public static void main(String[] args) {10 List mockedList = mock(List.class);11 when(mockedList.get(anyInt())).thenReturn("element");12 System.out.println(mockedList.get(999));13 }14}15public class 3 {16 public static void main(String[] args) {17 List mockedList = mock(List.class);18 when(mockedList.get(anyInt())).thenReturn("element");19 System.out.println(mockedList.get(999));20 }21}22public class 4 {23 public static void main(String[] args) {24 List mockedList = mock(List.class);25 when(mockedList.get(anyInt())).thenReturn("element");26 System.out.println(mockedList.get(999));27 }28}29public class 5 {30 public static void main(String[] args) {31 List mockedList = mock(List.class);32 when(mockedList.get(anyInt())).thenReturn("element");33 System.out.println(mockedList.get(999));34 }35}36public class 6 {37 public static void main(String[] args) {38 List mockedList = mock(List.class);39 when(mockedList.get(anyInt())).thenReturn("element");40 System.out.println(mockedList.get(999));41 }42}43public class 7 {44 public static void main(String[] args) {45 List mockedList = mock(List.class);46 when(mockedList.get(anyInt())).thenReturn("element");47 System.out.println(mockedList.get(999));48 }49}
floatThat
Using AI Code Generation
1import org.mockito.ArgumentMatchers;2import static org.mockito.Mockito.when;3import static org.mockito.Mockito.mock;4import static org.mockito.Mockito.verify;5import static org.mockito.Mockito.times;6import static org.mockito.Mockito.anyFloat;7import static org.mockito.Mockito.any;8import static org.mockito.Mockito.doThrow;9import static org.mockito.Mockito.doNothing;10import static org.mockito.Mockito.doCallRealMethod;11import static org.mockito.Mockito.spy;12import static org.mockito.Mockito.never;13import static org.mockito.Mockito.eq;14import static org.mockito.Mockito.inOrder;15import static org.mockito.Mockito.atLeastOnce;16import static org.mockito.Mockito.atLeast;17import static org.mockito.Mockito.timeout;18import static org.mockito.Mockito.verifyNoMoreInteractions;19import static org.mockito.Mockito.verifyZeroInteractions;20import static org.mockito.Mockito.only;21import s
floatThat
Using AI Code Generation
1package com.automationtesting;2import static org.mockito.ArgumentMatchers.floatThat;3import static org.mockito.Mockito.mock;4import static org.mockito.Mockito.when;5import java.util.List;6import org.junit.Test;7public class MockitoFloatThatMethod {8 public void testFloatThat() {9 List<String> list = mock(List.class);10 when(list.get(0)).thenReturn("Hello");11 when(list.get(1)).thenReturn("World");12 when(list.get(floatThat(num -> num > 1 && num < 5))).thenReturn("Hello World");13 System.out.println(list.get(0));14 System.out.println(list.get(1));15 System.out.println(list.get(2));16 System.out.println(list.get(3));17 System.out.println(list.get(4));18 System.out.println(list.get(5));19 }20}
floatThat
Using AI Code Generation
1package org.codechamps.mockito;2import static org.mockito.ArgumentMatchers.floatThat;3import static org.mockito.Mockito.mock;4import static org.mockito.Mockito.when;5import java.util.List;6public class MockitoFloatThat {7 public static void main(String[] args) {8 List mockedList = mock(List.class);9 when(mockedList.get(floatThat(f -> f > 0.0f))).thenReturn(1);10 System.out.println(mockedList.get(1.0f));11 }12}
floatThat
Using AI Code Generation
1import org.mockito.ArgumentMatchers;2import org.mockito.Mockito;3import org.mockito.stubbing.Answer;4import static org.mockito.Mockito.mock;5import static org.mockito.Mockito.when;6import static org.mockito.Mockito.anyFloat;7import static org.mockito.Mockito.anyString;8import static org.mockito.Mockito.any;9import static org.mockito.Mockito.anyInt;10import static org.mockito.Mockito.anyDouble;11import static org.mockito.Mockito.anyLong;12import static org.mockito.Mockito.anyShort;13import static org.mockito.Mockito.anyByte;14import static org.mockito.Mockito.anyChar;15import static org.mockito.Mockito.anyBoolean;16import static org.mockito.Mockito.anyVararg;17import static org.mockito.Mockito.anyCollection;18import static org.mockito.Mockito.anyList;19import static org.mockito.Mockito.anyMap;20import static org.mockito.Mockito.anySet;21import static org.mockito.Mockito.anyIterable;22import static org.mockito.Mockito.anyIterator;23import static org.mockito.Mockito.anyObject;24import static org.mockito.Mockito.anyClass;25import static org.mockito.Mockito.anyVararg;26import st
floatThat
Using AI Code Generation
1import org.mockito.ArgumentMatchers;2import org.mockito.Mockito;3public class floatThat {4 public static void main(String[] args) {5 float f = 1.0f;6 float f1 = 1.0f;7 float f2 = 1.0f;8 float f3 = 1.0f;9 float f4 = 1.0f;10 Mockito.mock(List.class).add(ArgumentMatchers.floatThat(f -> f == f1));11 Mockito.mock(List.class).add(ArgumentMatchers.floatThat(f -> f > f2));12 Mockito.mock(List.class).add(ArgumentMatchers.floatThat(f -> f < f3));13 Mockito.mock(List.class).add(ArgumentMatchers.floatThat(f -> f != f4));14 }15}
floatThat
Using AI Code Generation
1import org.mockito.ArgumentMatchers;2import org.mockito.Mockito;3public class floatThat {4 public static void main(String[] args) {5 MyClass test = Mockito.mock(MyClass.class);6 Mockito.when(test.getfloatThat(ArgumentMatchers.floatThat(x -> x > 0))).thenReturn(1);7 System.out.println(test.getfloatThat(1.1f));8 }9}10class MyClass {11 public int getfloatThat(float f) {12 return 0;13 }14}15Recommended Posts: Java | floatIsZero() method in ArgumentMatchers class16Java | floatIsNotZero() method in ArgumentMatchers class17Java | floatIs() method in ArgumentMatchers class18Java | floatIsNot() method in ArgumentMatchers class19Java | floatIsIn() method in ArgumentMatchers class20Java | floatIsNotIn() method in ArgumentMatchers class21Java | floatIsCloseTo() method in ArgumentMatchers class22Java | floatIsNotCloseTo() method in ArgumentMatchers class23Java | floatIsNaN() method in ArgumentMatchers class24Java | floatIsNotNaN() method in ArgumentMatchers class25Java | floatIsPositive() method in ArgumentMatchers class26Java | floatIsNotPositive() method in ArgumentMatchers class27Java | floatIsNegative() method in ArgumentMatchers class28Java | floatIsNotNegative() method in ArgumentMatchers class29Java | floatIsZeroOrPositive() method in ArgumentMatchers class30Java | floatIsZeroOrNegative() method in ArgumentMatchers class31Java | floatIsNotZeroOrPositive() method in ArgumentMatchers class32Java | floatIsNotZeroOrNegative() method in ArgumentMatchers class33Java | floatIsGreaterThan() method in ArgumentMatchers class34Java | floatIsLessThan() method in ArgumentMatchers class35Java | floatIsGreaterThanOrEqualTo() method in ArgumentMatchers class36Java | floatIsLessThanOrEqualTo() method in ArgumentMatchers class37Java | floatIsBetween() method in ArgumentMatchers class38Java | floatIsNotBetween() method in ArgumentMatchers class39Java | floatIsStrictlyBetween() method in ArgumentMatchers class40Java | floatIsNotStrictlyBetween() method in ArgumentMatchers class41Java | floatIsEquivalentAccordingToCompareTo() method in ArgumentMatchers
floatThat
Using AI Code Generation
1import static org.mockito.ArgumentMatchers.*;2import static org.mockito.Mockito.*;3import org.mockito.Mockito;4public class 1 {5 public static void main(String[] args) {6 A obj = mock(A.class);7 when(obj.foo(floatThat(x -> x > 5.5))).thenReturn(10);8 System.out.println(obj.foo(6.6));9 }10}11class A {12 public int foo(float f) {13 return 0;14 }15}16Mockito | ArgumentCaptor.capture()17Mockito | ArgumentCaptor.capture() method18Mockito | ArgumentCaptor.getValue() method19Mockito | ArgumentCaptor.getAllValues() method20Mockito | ArgumentCaptor.forClass(Class) method
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!!