mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-15 14:03:06 +00:00

# Conflicts: # src/app/core/cache/models/normalized-object-factory.ts # src/app/core/cache/response.models.ts # src/app/core/data/registry-metadatafields-response-parsing.service.ts # src/app/core/data/registry-metadataschemas-response-parsing.service.ts # src/app/core/data/request.models.ts # src/app/core/data/request.service.ts # src/app/core/shared/collection.model.ts # src/app/core/shared/dspace-object.model.ts # src/app/core/shared/resource-type.ts
174 lines
6.8 KiB
TypeScript
174 lines
6.8 KiB
TypeScript
import { getMockObjectCacheService } from '../../shared/mocks/mock-object-cache.service';
|
|
import { ErrorResponse, GenericSuccessResponse } from '../cache/response.models';
|
|
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
|
import { BrowseEntriesResponseParsingService } from './browse-entries-response-parsing.service';
|
|
import { BrowseEntriesRequest, BrowseItemsRequest } from './request.models';
|
|
import { BrowseItemsResponseParsingService } from './browse-items-response-parsing-service';
|
|
|
|
describe('BrowseItemsResponseParsingService', () => {
|
|
let service: BrowseItemsResponseParsingService;
|
|
|
|
beforeEach(() => {
|
|
service = new BrowseItemsResponseParsingService(undefined, getMockObjectCacheService());
|
|
});
|
|
|
|
describe('parse', () => {
|
|
const request = new BrowseItemsRequest('client/f5b4ccb8-fbb0-4548-b558-f234d9fdfad6', 'https://rest.api/discover/browses/author/items');
|
|
|
|
const validResponse = {
|
|
payload: {
|
|
_embedded: {
|
|
items: [
|
|
{
|
|
id: 'd7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7',
|
|
uuid: 'd7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7',
|
|
name: 'Development of Local Supply Chain : A Critical Link for Concentrated Solar Power in India',
|
|
handle: '10986/17472',
|
|
metadata: {
|
|
'dc.creator': [
|
|
{
|
|
value: 'World Bank',
|
|
language: null
|
|
}
|
|
]
|
|
},
|
|
inArchive: true,
|
|
discoverable: true,
|
|
withdrawn: false,
|
|
lastModified: '2018-05-25T09:32:58.005+0000',
|
|
type: 'item',
|
|
_links: {
|
|
bitstreams: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7/bitstreams'
|
|
},
|
|
owningCollection: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7/owningCollection'
|
|
},
|
|
templateItemOf: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7/templateItemOf'
|
|
},
|
|
self: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7'
|
|
}
|
|
}
|
|
},
|
|
{
|
|
id: '27c6f976-257c-4ad0-a0ef-c5e34ffe4d5b',
|
|
uuid: '27c6f976-257c-4ad0-a0ef-c5e34ffe4d5b',
|
|
name: 'Development of Local Supply Chain : The Missing Link for Concentrated Solar Power Projects in India',
|
|
handle: '10986/17475',
|
|
metadata: {
|
|
'dc.creator': [
|
|
{
|
|
value: 'World Bank',
|
|
language: null
|
|
}
|
|
]
|
|
},
|
|
inArchive: true,
|
|
discoverable: true,
|
|
withdrawn: false,
|
|
lastModified: '2018-05-25T09:33:42.526+0000',
|
|
type: 'item',
|
|
_links: {
|
|
bitstreams: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/27c6f976-257c-4ad0-a0ef-c5e34ffe4d5b/bitstreams'
|
|
},
|
|
owningCollection: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/27c6f976-257c-4ad0-a0ef-c5e34ffe4d5b/owningCollection'
|
|
},
|
|
templateItemOf: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/27c6f976-257c-4ad0-a0ef-c5e34ffe4d5b/templateItemOf'
|
|
},
|
|
self: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/27c6f976-257c-4ad0-a0ef-c5e34ffe4d5b'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
_links: {
|
|
first: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/discover/browses/author/items?page=0&size=2'
|
|
},
|
|
self: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/discover/browses/author/items'
|
|
},
|
|
next: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/discover/browses/author/items?page=1&size=2'
|
|
},
|
|
last: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/discover/browses/author/items?page=7&size=2'
|
|
}
|
|
},
|
|
page: {
|
|
size: 2,
|
|
totalElements: 16,
|
|
totalPages: 8,
|
|
number: 0
|
|
}
|
|
},
|
|
statusCode: 200,
|
|
statusText: 'OK'
|
|
} as DSpaceRESTV2Response;
|
|
|
|
const invalidResponseNotAList = {
|
|
payload: {
|
|
id: 'd7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7',
|
|
uuid: 'd7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7',
|
|
name: 'Development of Local Supply Chain : A Critical Link for Concentrated Solar Power in India',
|
|
handle: '10986/17472',
|
|
metadata: {
|
|
'dc.creator': [
|
|
{
|
|
value: 'World Bank',
|
|
language: null
|
|
}
|
|
]
|
|
},
|
|
inArchive: true,
|
|
discoverable: true,
|
|
withdrawn: false,
|
|
lastModified: '2018-05-25T09:32:58.005+0000',
|
|
type: 'item',
|
|
_links: {
|
|
bitstreams: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7/bitstreams'
|
|
},
|
|
owningCollection: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7/owningCollection'
|
|
},
|
|
templateItemOf: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7/templateItemOf'
|
|
},
|
|
self: {
|
|
href: 'https://dspace7-internal.atmire.com/rest/api/core/items/d7b6bc6f-ff6c-444a-a0d3-0cd9b68043e7'
|
|
}
|
|
}
|
|
},
|
|
statusCode: 200,
|
|
statusText: 'OK'
|
|
} as DSpaceRESTV2Response;
|
|
|
|
const invalidResponseStatusCode = {
|
|
payload: {}, statusCode: 500, statusText: 'Internal Server Error'
|
|
} as DSpaceRESTV2Response;
|
|
|
|
it('should return a GenericSuccessResponse if data contains a valid browse items response', () => {
|
|
const response = service.parse(request, validResponse);
|
|
expect(response.constructor).toBe(GenericSuccessResponse);
|
|
});
|
|
|
|
it('should return an ErrorResponse if data contains an invalid browse entries response', () => {
|
|
const response = service.parse(request, invalidResponseNotAList);
|
|
expect(response.constructor).toBe(ErrorResponse);
|
|
});
|
|
|
|
it('should return an ErrorResponse if data contains a statuscode other than 200', () => {
|
|
const response = service.parse(request, invalidResponseStatusCode);
|
|
expect(response.constructor).toBe(ErrorResponse);
|
|
});
|
|
|
|
});
|
|
});
|