mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Testcases Added (#9116)
* added a news tester file and directory for GsonHelper.java. Also created a new test in OVAProcessorTest.java * added testcase to PasswordPolicyImplTest.java * added proper imports for GsonHelperTest.java * expected changed based on commit response * adhere to checkstyle ruleset
This commit is contained in:
parent
f2a1ee57ca
commit
24dc3178a3
81
core/src/test/java/com/cloud/serializer/GsonHelperTest.java
Normal file
81
core/src/test/java/com/cloud/serializer/GsonHelperTest.java
Normal file
@ -0,0 +1,81 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package com.cloud.serializer;
|
||||
|
||||
import com.cloud.agent.api.to.NfsTO;
|
||||
import com.cloud.storage.DataStoreRole;
|
||||
import com.google.gson.Gson;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
/**
|
||||
* Test cases to verify working order of GsonHelper.java
|
||||
* with regards to a concrete implementation of the DataStoreTO
|
||||
* interface
|
||||
*/
|
||||
public class GsonHelperTest {
|
||||
|
||||
private Gson gson;
|
||||
private Gson gsonLogger;
|
||||
private NfsTO nfsTO;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
gson = GsonHelper.getGson();
|
||||
gsonLogger = GsonHelper.getGsonLogger();
|
||||
nfsTO = new NfsTO("http://example.com", DataStoreRole.Primary);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGsonSerialization() {
|
||||
String json = gson.toJson(nfsTO);
|
||||
assertNotNull(json);
|
||||
assertTrue(json.contains("\"_url\":\"http://example.com\""));
|
||||
assertTrue(json.contains("\"_role\":\"Primary\""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGsonDeserialization() {
|
||||
String json = "{\"_url\":\"http://example.com\",\"_role\":\"Primary\"}";
|
||||
NfsTO deserializedNfsTO = gson.fromJson(json, NfsTO.class);
|
||||
assertNotNull(deserializedNfsTO);
|
||||
assertEquals("http://example.com", deserializedNfsTO.getUrl());
|
||||
assertEquals(DataStoreRole.Primary, deserializedNfsTO.getRole());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGsonLoggerSerialization() {
|
||||
String json = gsonLogger.toJson(nfsTO);
|
||||
assertNotNull(json);
|
||||
assertTrue(json.contains("\"_url\":\"http://example.com\""));
|
||||
assertTrue(json.contains("\"_role\":\"Primary\""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGsonLoggerDeserialization() {
|
||||
String json ="{\"_url\":\"http://example.com\",\"_role\":\"Primary\"}";
|
||||
NfsTO deserializedNfsTO = gsonLogger.fromJson(json, NfsTO.class);
|
||||
assertNotNull(deserializedNfsTO);
|
||||
assertEquals("http://example.com", deserializedNfsTO.getUrl());
|
||||
assertEquals(DataStoreRole.Primary, deserializedNfsTO.getRole());
|
||||
}
|
||||
}
|
||||
@ -131,5 +131,25 @@ public class OVAProcessorTest {
|
||||
Assert.assertEquals(virtualSize, processor.getVirtualSize(mockFile));
|
||||
Mockito.verify(mockFile, Mockito.times(0)).length();
|
||||
}
|
||||
@Test
|
||||
public void testProcessWithLargeFileSize() throws Exception {
|
||||
String templatePath = "/tmp";
|
||||
String templateName = "large_template";
|
||||
long virtualSize = 10_000_000_000L;
|
||||
long actualSize = 5_000_000_000L;
|
||||
|
||||
Mockito.when(mockStorageLayer.exists(Mockito.anyString())).thenReturn(true);
|
||||
Mockito.when(mockStorageLayer.getSize(Mockito.anyString())).thenReturn(actualSize);
|
||||
Mockito.doReturn(virtualSize).when(processor).getTemplateVirtualSize(Mockito.anyString(), Mockito.anyString());
|
||||
|
||||
try (MockedConstruction<Script> ignored = Mockito.mockConstruction(Script.class, (mock, context) -> {
|
||||
Mockito.when(mock.execute()).thenReturn(null);
|
||||
})) {
|
||||
Processor.FormatInfo info = processor.process(templatePath, null, templateName);
|
||||
Assert.assertEquals(Storage.ImageFormat.OVA, info.format);
|
||||
Assert.assertEquals("actual size:", actualSize, info.size);
|
||||
Assert.assertEquals("virtual size:", virtualSize, info.virtualSize);
|
||||
Assert.assertEquals("template name:", templateName + ".ova", info.filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -160,4 +160,22 @@ public class PasswordPolicyImplTest {
|
||||
passwordPolicySpy.validateIfPasswordMatchesRegex("abcd123", "user", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateCombinationOfPolicies() {
|
||||
Mockito.doReturn(2).when(passwordPolicySpy).getPasswordPolicyMinimumSpecialCharacters(null);
|
||||
Mockito.doReturn(1).when(passwordPolicySpy).getPasswordPolicyMinimumUpperCaseLetters(null);
|
||||
Mockito.doReturn(1).when(passwordPolicySpy).getPasswordPolicyMinimumLowerCaseLetters(null);
|
||||
Mockito.doReturn(1).when(passwordPolicySpy).getPasswordPolicyMinimumDigits(null);
|
||||
Mockito.doReturn(8).when(passwordPolicySpy).getPasswordPolicyMinimumLength(null);
|
||||
Mockito.doReturn(false).when(passwordPolicySpy).getPasswordPolicyAllowPasswordToContainUsername(null);
|
||||
|
||||
String password = "Ab1!@#cd";
|
||||
passwordPolicySpy.validateIfPasswordContainsTheMinimumNumberOfSpecialCharacters(2, password, null);
|
||||
passwordPolicySpy.validateIfPasswordContainsTheMinimumNumberOfUpperCaseLetters(1, password, null);
|
||||
passwordPolicySpy.validateIfPasswordContainsTheMinimumNumberOfLowerCaseLetters(1, password, null);
|
||||
passwordPolicySpy.validateIfPasswordContainsTheMinimumNumberOfDigits(1, password, null);
|
||||
passwordPolicySpy.validateIfPasswordContainsTheMinimumLength(password, "user", null);
|
||||
passwordPolicySpy.validateIfPasswordContainsTheUsername(password, "user", null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user