mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-15 14:03:06 +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 { HierarchicalBrowseDefinition } from '../shared/hierarchical-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 { BrowseDefinition } from '../shared/browse-definition.model';
|
||||
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({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class BrowseResponseParsingService extends DSOResponseParsingService {
|
||||
export class BrowseResponseParsingService extends DspaceRestResponseParsingService {
|
||||
constructor(
|
||||
protected objectCache: ObjectCacheService,
|
||||
) {
|
||||
|
@@ -10,6 +10,10 @@ import { hasNoValue, hasValue } from '../../shared/empty.util';
|
||||
import { DSpaceObject } from '../shared/dspace-object.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()
|
||||
export class DSOResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||
protected toCache = true;
|
||||
|
Reference in New Issue
Block a user