mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-15 22:13:02 +00:00
101623: Fix BrowseResponseParsingService + Add tests for it
This commit is contained in:
64
src/app/core/data/browse-response-parsing.service.spec.ts
Normal file
64
src/app/core/data/browse-response-parsing.service.spec.ts
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
import { getMockObjectCacheService } from '../../shared/mocks/object-cache.service.mock';
|
||||||
|
import { BrowseResponseParsingService } from './browse-response-parsing.service';
|
||||||
|
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||||
|
import { HIERARCHICAL_BROWSE_DEFINITION } from '../shared/hierarchical-browse-definition.resource-type';
|
||||||
|
import { FLAT_BROWSE_DEFINITION } from '../shared/flat-browse-definition.resource-type';
|
||||||
|
import { VALUE_LIST_BROWSE_DEFINITION } from '../shared/value-list-browse-definition.resource-type';
|
||||||
|
|
||||||
|
class TestService extends BrowseResponseParsingService {
|
||||||
|
constructor(protected objectCache: ObjectCacheService) {
|
||||||
|
super(objectCache);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Overwrite method to make it public for testing
|
||||||
|
public deserialize<ObjectDomain>(obj): any {
|
||||||
|
return super.deserialize(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('BrowseResponseParsingService', () => {
|
||||||
|
let service: TestService;
|
||||||
|
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
service = new TestService(getMockObjectCacheService());
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('', () => {
|
||||||
|
const mockFlatBrowse = {
|
||||||
|
id: 'title',
|
||||||
|
browseType: 'flatBrowse',
|
||||||
|
type: 'browse',
|
||||||
|
};
|
||||||
|
|
||||||
|
const mockValueList = {
|
||||||
|
id: 'author',
|
||||||
|
browseType: 'valueList',
|
||||||
|
type: 'browse',
|
||||||
|
};
|
||||||
|
|
||||||
|
const mockHierarchicalBrowse = {
|
||||||
|
id: 'srsc',
|
||||||
|
browseType: 'hierarchicalBrowse',
|
||||||
|
type: 'browse',
|
||||||
|
};
|
||||||
|
|
||||||
|
it('should deserialize flatBrowses correctly', () => {
|
||||||
|
let deserialized = service.deserialize(mockFlatBrowse);
|
||||||
|
expect(deserialized.type).toBe(FLAT_BROWSE_DEFINITION);
|
||||||
|
expect(deserialized.id).toBe(mockFlatBrowse.id);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should deserialize valueList browses correctly', () => {
|
||||||
|
let deserialized = service.deserialize(mockValueList);
|
||||||
|
expect(deserialized.type).toBe(VALUE_LIST_BROWSE_DEFINITION);
|
||||||
|
expect(deserialized.id).toBe(mockValueList.id);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should deserialize hierarchicalBrowses correctly', () => {
|
||||||
|
let deserialized = service.deserialize(mockHierarchicalBrowse);
|
||||||
|
expect(deserialized.type).toBe(HIERARCHICAL_BROWSE_DEFINITION);
|
||||||
|
expect(deserialized.id).toBe(mockHierarchicalBrowse.id);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@@ -7,7 +7,7 @@ import {
|
|||||||
import { FLAT_BROWSE_DEFINITION } from '../shared/flat-browse-definition.resource-type';
|
import { FLAT_BROWSE_DEFINITION } from '../shared/flat-browse-definition.resource-type';
|
||||||
import { HierarchicalBrowseDefinition } from '../shared/hierarchical-browse-definition.model';
|
import { HierarchicalBrowseDefinition } from '../shared/hierarchical-browse-definition.model';
|
||||||
import { FlatBrowseDefinition } from '../shared/flat-browse-definition.model';
|
import { FlatBrowseDefinition } from '../shared/flat-browse-definition.model';
|
||||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
import { DspaceRestResponseParsingService } from './dspace-rest-response-parsing.service';
|
||||||
import { Serializer } from '../serializer';
|
import { Serializer } from '../serializer';
|
||||||
import { BrowseDefinition } from '../shared/browse-definition.model';
|
import { BrowseDefinition } from '../shared/browse-definition.model';
|
||||||
import { BROWSE_DEFINITION } from '../shared/browse-definition.resource-type';
|
import { BROWSE_DEFINITION } from '../shared/browse-definition.resource-type';
|
||||||
@@ -20,7 +20,7 @@ import { VALUE_LIST_BROWSE_DEFINITION } from '../shared/value-list-browse-defini
|
|||||||
@Injectable({
|
@Injectable({
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class BrowseResponseParsingService extends DSOResponseParsingService {
|
export class BrowseResponseParsingService extends DspaceRestResponseParsingService {
|
||||||
constructor(
|
constructor(
|
||||||
protected objectCache: ObjectCacheService,
|
protected objectCache: ObjectCacheService,
|
||||||
) {
|
) {
|
||||||
|
@@ -10,6 +10,10 @@ import { hasNoValue, hasValue } from '../../shared/empty.util';
|
|||||||
import { DSpaceObject } from '../shared/dspace-object.model';
|
import { DSpaceObject } from '../shared/dspace-object.model';
|
||||||
import { RestRequest } from './rest-request.model';
|
import { RestRequest } from './rest-request.model';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated use DspaceRestResponseParsingService for new code, this is only left to support a
|
||||||
|
* few legacy use cases, and should get removed eventually
|
||||||
|
*/
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class DSOResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
export class DSOResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||||
protected toCache = true;
|
protected toCache = true;
|
||||||
|
Reference in New Issue
Block a user