Junit test cases looking for full code coverage. | Community
Skip to main content
djohn98390536
Level 4
August 19, 2024
Solved

Junit test cases looking for full code coverage.

  • August 19, 2024
  • 1 reply
  • 748 views

Here is the below code looking for full code coverage.

 

ValueMap vm = assetResource.getValueMap();
String version = vm.get("jcr:lastModifiedVersion", String.class);
boolean isNewAsset = vm.containsKey("newAsset");
if (!isNewAsset) {
Resource rr= resourceResolver.getResource(path);
ModifiableValueMap mvm = rr.adaptTo(ModifiableValueMap.class);
mvm.put(newversion,version + 1));

} else if (isNewAsset) {
Resource rr= resourceResolver.getResource(path);
ModifiableValueMap mvm= rr.adaptTo(ModifiableValueMap.class);
mvm.put(newversion,version + 2));
}

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by AMANATH_ULLAH

@djohn98390536 

Below is the junit code

 

import static org.mockito.Mockito.*;
import static org.junit.Assert.*;

import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

public class AssetTest {

@Mock
private Resource assetResource;

@Mock
private ResourceResolver resourceResolver;

@Mock
private ValueMap valueMap;

@Mock
private Resource resource;

@Mock
private ModifiableValueMap modifiableValueMap;

@InjectMocks
private AssetService assetService; // Assuming the code belongs to a service class named AssetService

private final String path = "/content/dam/sample";
private final String versionKey = "jcr:lastModifiedVersion";
private final String newVersionKey = "newVersion";
private final String version = "1.0";

@Before
public void setup() {
MockitoAnnotations.initMocks(this);
when(assetResource.getValueMap()).thenReturn(valueMap);
when(resourceResolver.getResource(path)).thenReturn(resource);
when(resource.adaptTo(ModifiableValueMap.class)).thenReturn(modifiableValueMap);
}

@Test
public void testExistingAsset() {
// Setup
when(valueMap.get(versionKey, String.class)).thenReturn(version);
when(valueMap.containsKey("newAsset")).thenReturn(false);

// Execute
assetService.updateAsset(assetResource, resourceResolver, path);

// Verify
verify(modifiableValueMap).put(newVersionKey, "1.01");
}

@Test
public void testNewAsset() {
// Setup
when(valueMap.get(versionKey, String.class)).thenReturn(version);
when(valueMap.containsKey("newAsset")).thenReturn(true);

// Execute
assetService.updateAsset(assetResource, resourceResolver, path);

// Verify
verify(modifiableValueMap).put(newVersionKey, "1.02");
}
}

 

1 reply

AMANATH_ULLAH
Community Advisor
AMANATH_ULLAHCommunity AdvisorAccepted solution
Community Advisor
August 20, 2024

@djohn98390536 

Below is the junit code

 

import static org.mockito.Mockito.*;
import static org.junit.Assert.*;

import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;

public class AssetTest {

@Mock
private Resource assetResource;

@Mock
private ResourceResolver resourceResolver;

@Mock
private ValueMap valueMap;

@Mock
private Resource resource;

@Mock
private ModifiableValueMap modifiableValueMap;

@InjectMocks
private AssetService assetService; // Assuming the code belongs to a service class named AssetService

private final String path = "/content/dam/sample";
private final String versionKey = "jcr:lastModifiedVersion";
private final String newVersionKey = "newVersion";
private final String version = "1.0";

@Before
public void setup() {
MockitoAnnotations.initMocks(this);
when(assetResource.getValueMap()).thenReturn(valueMap);
when(resourceResolver.getResource(path)).thenReturn(resource);
when(resource.adaptTo(ModifiableValueMap.class)).thenReturn(modifiableValueMap);
}

@Test
public void testExistingAsset() {
// Setup
when(valueMap.get(versionKey, String.class)).thenReturn(version);
when(valueMap.containsKey("newAsset")).thenReturn(false);

// Execute
assetService.updateAsset(assetResource, resourceResolver, path);

// Verify
verify(modifiableValueMap).put(newVersionKey, "1.01");
}

@Test
public void testNewAsset() {
// Setup
when(valueMap.get(versionKey, String.class)).thenReturn(version);
when(valueMap.containsKey("newAsset")).thenReturn(true);

// Execute
assetService.updateAsset(assetResource, resourceResolver, path);

// Verify
verify(modifiableValueMap).put(newVersionKey, "1.02");
}
}

 

Amanath Ullah
djohn98390536
Level 4
August 20, 2024

Hi @amanath_ullah  Thanks a lot for your time to reply . It is working as expected.