2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2024 Nordix Foundation.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.drools.core.lock;
24 import static org.assertj.core.api.Assertions.assertThatCode;
25 import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
26 import static org.junit.jupiter.api.Assertions.assertEquals;
27 import static org.junit.jupiter.api.Assertions.assertSame;
28 import static org.junit.jupiter.api.Assertions.assertTrue;
29 import static org.mockito.Mockito.mock;
31 import org.junit.jupiter.api.BeforeEach;
32 import org.junit.jupiter.api.Test;
34 class AlwaysSuccessLockTest extends AlwaysLockBaseTest<AlwaysSuccessLock> {
38 callback = mock(LockCallback.class);
39 lock = new AlwaysSuccessLock(RESOURCE, OWNER_KEY, HOLD_SEC, callback);
43 void testAlwaysSuccessLockConstructors() {
44 assertThatCode(AlwaysSuccessLock::new).doesNotThrowAnyException();
45 assertThatCode(() -> new AlwaysSuccessLock(LockState.ACTIVE, RESOURCE, OWNER_KEY, HOLD_SEC, callback))
46 .doesNotThrowAnyException();
47 assertThatIllegalArgumentException()
48 .isThrownBy(() -> new AlwaysSuccessLock(LockState.UNAVAILABLE, RESOURCE, OWNER_KEY, HOLD_SEC, callback));
52 void testActiveLock() {
53 assertTrue(lock.isActive());
58 assertTrue(lock.free());
59 assertTrue(lock.isActive());
64 LockCallback callback2 = mock(LockCallback.class);
65 lock.extend(HOLD_SEC2, callback2);
67 assertEquals(HOLD_SEC2, lock.getHoldSec());
68 assertSame(callback2, lock.getCallback());