Bump checkstyle version
[dcaegen2/collectors/hv-ves.git] / hv-collector-test-utils / src / main / kotlin / org / onap / dcae / collectors / veshv / tests / utils / assertions.kt
1 /*
2  * ============LICENSE_START=======================================================
3  * dcaegen2-collectors-veshv
4  * ================================================================================
5  * Copyright (C) 2018 NOKIA
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.dcae.collectors.veshv.tests.utils
21
22 import arrow.core.Either
23 import org.onap.dcae.collectors.veshv.utils.logging.Logger
24 import java.time.Duration
25
26 /**
27  * @author Piotr Jaszczyk <piotr.jaszczyk@nokia.com>
28  * @since September 2018
29  */
30
31 private val logger = Logger("org.onap.dcae.collectors.veshv.tests.utils")
32
33 object Assertions : org.assertj.core.api.Assertions() {
34     fun <A,B> assertThat(actual: Either<A, B>) = EitherAssert(actual)
35 }
36
37
38 fun waitUntilSucceeds(action: () -> Unit) = waitUntilSucceeds(50, Duration.ofMillis(10), action)
39
40 fun waitUntilSucceeds(retries: Int, sleepTime: Duration, action: () -> Unit) {
41     var tryNum = 0
42     while (tryNum <= retries) {
43         tryNum++
44         try {
45             logger.debug("Try number $tryNum")
46             action()
47             break
48         } catch (ex: Throwable) {
49             if (tryNum >= retries)
50                 throw ex
51             else
52                 Thread.sleep(sleepTime.toMillis())
53         }
54     }
55 }