1
0

Merge pull request #509 from atmire/w2p-65572_Add-support-for-bundles

Add support for bundles
This commit is contained in:
Tim Donohue
2019-11-21 14:53:10 -06:00
committed by GitHub
67 changed files with 278 additions and 198 deletions

View File

@@ -23,7 +23,7 @@ import {
} from '../../shared/testing/utils'; } from '../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -50,7 +50,7 @@ describe('ItemPageFieldComponent', () => {
export function mockItemWithMetadataFieldAndValue(field: string, value: string): Item { export function mockItemWithMetadataFieldAndValue(field: string, value: string): Item {
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: new MetadataMap() metadata: new MetadataMap()
}); });
item.metadata[field] = [{ item.metadata[field] = [{

View File

@@ -22,7 +22,7 @@ import {
} from '../../shared/testing/utils'; } from '../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: [], metadata: [],
relationships: createRelationshipsObservable() relationships: createRelationshipsObservable()
}); });

View File

@@ -17,7 +17,7 @@ import { MetadataMap } from '../../../../core/shared/metadata.models';
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: new MetadataMap(), metadata: new MetadataMap(),
relationships: createRelationshipsObservable() relationships: createRelationshipsObservable()
}); });

View File

@@ -11,17 +11,17 @@ import { RelationshipService } from '../../../core/data/relationship.service';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
const parentItem: Item = Object.assign(new Item(), { const parentItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: [], metadata: [],
relationships: createRelationshipsObservable() relationships: createRelationshipsObservable()
}); });
const mockItem1: Item = Object.assign(new Item(), { const mockItem1: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: [], metadata: [],
relationships: createRelationshipsObservable() relationships: createRelationshipsObservable()
}); });
const mockItem2: Item = Object.assign(new Item(), { const mockItem2: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: [], metadata: [],
relationships: createRelationshipsObservable() relationships: createRelationshipsObservable()
}); });

View File

@@ -11,6 +11,13 @@ import { Bitstream } from '../../shared/bitstream.model';
@mapsTo(Bundle) @mapsTo(Bundle)
@inheritSerialization(NormalizedDSpaceObject) @inheritSerialization(NormalizedDSpaceObject)
export class NormalizedBundle extends NormalizedDSpaceObject<Bundle> { export class NormalizedBundle extends NormalizedDSpaceObject<Bundle> {
/**
* The bundle's name
*/
@autoserialize
name: string;
/** /**
* The primary bitstream of this Bundle * The primary bitstream of this Bundle
*/ */

View File

@@ -3,13 +3,9 @@ import { inheritSerialization, deserialize, autoserialize, autoserializeAs } fro
import { NormalizedDSpaceObject } from './normalized-dspace-object.model'; import { NormalizedDSpaceObject } from './normalized-dspace-object.model';
import { Item } from '../../shared/item.model'; import { Item } from '../../shared/item.model';
import { mapsTo, relationship } from '../builders/build-decorators'; import { mapsTo, relationship } from '../builders/build-decorators';
import { ResourceType } from '../../shared/resource-type';
import { NormalizedCollection } from './normalized-collection.model';
import { NormalizedBitstream } from './normalized-bitstream.model';
import { NormalizedRelationship } from './items/normalized-relationship.model';
import { Collection } from '../../shared/collection.model'; import { Collection } from '../../shared/collection.model';
import { Bitstream } from '../../shared/bitstream.model';
import { Relationship } from '../../shared/item-relationships/relationship.model'; import { Relationship } from '../../shared/item-relationships/relationship.model';
import { Bundle } from '../../shared/bundle.model';
/** /**
* Normalized model class for a DSpace Item * Normalized model class for a DSpace Item
@@ -66,8 +62,8 @@ export class NormalizedItem extends NormalizedDSpaceObject<Item> {
* List of Bitstreams that are owned by this Item * List of Bitstreams that are owned by this Item
*/ */
@deserialize @deserialize
@relationship(Bitstream, true) @relationship(Bundle, true)
bitstreams: string[]; bundles: string[];
@autoserialize @autoserialize
@relationship(Relationship, true) @relationship(Relationship, true)

View File

@@ -0,0 +1,46 @@
import { Injectable } from '@angular/core';
import { DataService } from './data.service';
import { Bundle } from '../shared/bundle.model';
import { RequestService } from './request.service';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { NormalizedObjectBuildService } from '../cache/builders/normalized-object-build.service';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { ObjectCacheService } from '../cache/object-cache.service';
import { HALEndpointService } from '../shared/hal-endpoint.service';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { HttpClient } from '@angular/common/http';
import { DefaultChangeAnalyzer } from './default-change-analyzer.service';
import { FindAllOptions } from './request.models';
import { Observable } from 'rxjs/internal/Observable';
/**
* A service responsible for fetching/sending data from/to the REST API on the bundles endpoint
*/
@Injectable()
export class BundleDataService extends DataService<Bundle> {
protected linkPath = 'bundles';
protected forceBypassCache = false;
constructor(
protected requestService: RequestService,
protected rdbService: RemoteDataBuildService,
protected dataBuildService: NormalizedObjectBuildService,
protected store: Store<CoreState>,
protected objectCache: ObjectCacheService,
protected halService: HALEndpointService,
protected notificationsService: NotificationsService,
protected http: HttpClient,
protected comparator: DefaultChangeAnalyzer<Bundle>) {
super();
}
/**
* Get the endpoint for browsing bundles
* @param {FindAllOptions} options
* @returns {Observable<string>}
*/
getBrowseEndpoint(options: FindAllOptions = {}, linkPath?: string): Observable<string> {
return this.halService.getEndpoint(this.linkPath);
}
}

View File

@@ -4,10 +4,16 @@ import { Item } from './item.model';
import { RemoteData } from '../data/remote-data'; import { RemoteData } from '../data/remote-data';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { ResourceType } from './resource-type'; import { ResourceType } from './resource-type';
import { PaginatedList } from '../data/paginated-list';
export class Bundle extends DSpaceObject { export class Bundle extends DSpaceObject {
static type = new ResourceType('bundle'); static type = new ResourceType('bundle');
/**
* The bundle's name
*/
name: string;
/** /**
* The primary bitstream of this Bundle * The primary bitstream of this Bundle
*/ */
@@ -23,6 +29,9 @@ export class Bundle extends DSpaceObject {
*/ */
owner: Observable<RemoteData<Item>>; owner: Observable<RemoteData<Item>>;
bitstreams: Observable<RemoteData<Bitstream[]>> /**
* List of Bitstreams that are part of this Bundle
*/
bitstreams: Observable<RemoteData<PaginatedList<Bitstream>>>;
} }

View File

@@ -4,7 +4,7 @@ import { Item } from './item.model';
import { Bitstream } from './bitstream.model'; import { Bitstream } from './bitstream.model';
import { isEmpty } from '../../shared/empty.util'; import { isEmpty } from '../../shared/empty.util';
import { first, map } from 'rxjs/operators'; import { first, map } from 'rxjs/operators';
import { createSuccessfulRemoteDataObject$ } from '../../shared/testing/utils'; import { createPaginatedList, createSuccessfulRemoteDataObject$ } from '../../shared/testing/utils';
describe('Item', () => { describe('Item', () => {
@@ -18,8 +18,9 @@ describe('Item', () => {
const nonExistingBundleName = 'c1e568f7-d14e-496b-bdd7-07026998cc00'; const nonExistingBundleName = 'c1e568f7-d14e-496b-bdd7-07026998cc00';
let bitstreams; let bitstreams;
let remoteDataThumbnail; let remoteDataThumbnail;
let remoteDataThumbnailList;
let remoteDataFiles; let remoteDataFiles;
let remoteDataAll; let remoteDataBundles;
beforeEach(() => { beforeEach(() => {
const thumbnail = { const thumbnail = {
@@ -33,15 +34,16 @@ describe('Item', () => {
}]; }];
remoteDataThumbnail = createSuccessfulRemoteDataObject$(thumbnail); remoteDataThumbnail = createSuccessfulRemoteDataObject$(thumbnail);
remoteDataFiles = createSuccessfulRemoteDataObject$(bitstreams); remoteDataThumbnailList = createSuccessfulRemoteDataObject$(createPaginatedList([thumbnail]));
remoteDataAll = createSuccessfulRemoteDataObject$([...bitstreams, thumbnail]); remoteDataFiles = createSuccessfulRemoteDataObject$(createPaginatedList(bitstreams));
// Create Bundles // Create Bundles
const bundles = const bundles =
[ [
{ {
name: thumbnailBundleName, name: thumbnailBundleName,
primaryBitstream: remoteDataThumbnail primaryBitstream: remoteDataThumbnail,
bitstreams: remoteDataThumbnailList
}, },
{ {
@@ -49,7 +51,9 @@ describe('Item', () => {
bitstreams: remoteDataFiles bitstreams: remoteDataFiles
}]; }];
item = Object.assign(new Item(), { bitstreams: remoteDataAll }); remoteDataBundles = createSuccessfulRemoteDataObject$(createPaginatedList(bundles));
item = Object.assign(new Item(), { bundles: remoteDataBundles });
}); });
it('should return the bitstreams related to this item with the specified bundle name', () => { it('should return the bitstreams related to this item with the specified bundle name', () => {

View File

@@ -1,15 +1,16 @@
import { map, startWith, filter, take } from 'rxjs/operators'; import { map, startWith, filter, switchMap } from 'rxjs/operators';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { DSpaceObject } from './dspace-object.model'; import { DSpaceObject } from './dspace-object.model';
import { Collection } from './collection.model'; import { Collection } from './collection.model';
import { RemoteData } from '../data/remote-data'; import { RemoteData } from '../data/remote-data';
import { Bitstream } from './bitstream.model'; import { Bitstream } from './bitstream.model';
import { hasValue, isEmpty, isNotEmpty } from '../../shared/empty.util'; import { hasValueOperator, isNotEmpty, isEmpty } from '../../shared/empty.util';
import { PaginatedList } from '../data/paginated-list'; import { PaginatedList } from '../data/paginated-list';
import { Relationship } from './item-relationships/relationship.model'; import { Relationship } from './item-relationships/relationship.model';
import { ResourceType } from './resource-type'; import { ResourceType } from './resource-type';
import { getSucceededRemoteData } from './operators'; import { getAllSucceededRemoteData, getSucceededRemoteData } from './operators';
import { Bundle } from './bundle.model';
import { GenericConstructor } from './generic-constructor'; import { GenericConstructor } from './generic-constructor';
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model'; import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
import { DEFAULT_ENTITY_TYPE } from '../../shared/metadata-representation/metadata-representation.decorator'; import { DEFAULT_ENTITY_TYPE } from '../../shared/metadata-representation/metadata-representation.decorator';
@@ -59,7 +60,10 @@ export class Item extends DSpaceObject {
return this.owningCollection; return this.owningCollection;
} }
bitstreams: Observable<RemoteData<PaginatedList<Bitstream>>>; /**
* Bitstream bundles within this item
*/
bundles: Observable<RemoteData<PaginatedList<Bundle>>>;
relationships: Observable<RemoteData<PaginatedList<Relationship>>>; relationships: Observable<RemoteData<PaginatedList<Relationship>>>;
@@ -103,17 +107,15 @@ export class Item extends DSpaceObject {
* see https://github.com/DSpace/dspace-angular/issues/332 * see https://github.com/DSpace/dspace-angular/issues/332
*/ */
getBitstreamsByBundleName(bundleName: string): Observable<Bitstream[]> { getBitstreamsByBundleName(bundleName: string): Observable<Bitstream[]> {
return this.bitstreams.pipe( return this.bundles.pipe(
getSucceededRemoteData(), getSucceededRemoteData(),
map((rd: RemoteData<PaginatedList<Bundle>>) => rd.payload.page.find((bundle: Bundle) => bundle.name === bundleName)),
hasValueOperator(),
switchMap((bundle: Bundle) => bundle.bitstreams),
getAllSucceededRemoteData(),
map((rd: RemoteData<PaginatedList<Bitstream>>) => rd.payload.page), map((rd: RemoteData<PaginatedList<Bitstream>>) => rd.payload.page),
filter((bitstreams: Bitstream[]) => hasValue(bitstreams)), startWith([])
take(1), );
startWith([]),
map((bitstreams) => {
return bitstreams
.filter((bitstream) => hasValue(bitstream))
.filter((bitstream) => bitstream.bundleName === bundleName)
}));
} }
/** /**

View File

@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -9,7 +9,7 @@ import { JournalIssueSearchResultGridElementComponent } from './journal-issue-se
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -35,7 +35,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -9,7 +9,7 @@ import { JournalVolumeSearchResultGridElementComponent } from './journal-volume-
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -35,7 +35,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -9,7 +9,7 @@ import { JournalSearchResultGridElementComponent } from './journal-search-result
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -41,7 +41,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service'; import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service'; import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service'; import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -43,7 +43,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -42,7 +42,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -37,7 +37,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -6,7 +6,7 @@ import { createRelationshipsObservable, getItemPageFieldsTest } from '../../../.
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'publicationissue.issueNumber': [ 'publicationissue.issueNumber': [
{ {

View File

@@ -11,7 +11,7 @@ import {
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'publicationvolume.volumeNumber': [ 'publicationvolume.volumeNumber': [
{ {

View File

@@ -18,7 +18,7 @@ let comp: JournalComponent;
let fixture: ComponentFixture<JournalComponent>; let fixture: ComponentFixture<JournalComponent>;
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'creativeworkseries.issn': [ 'creativeworkseries.issn': [
{ {

View File

@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -12,7 +12,7 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
import { By } from '@angular/platform-browser'; import { By } from '@angular/platform-browser';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -9,7 +9,7 @@ import { getEntityGridElementTestComponent } from '../../../../../shared/object-
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -41,7 +41,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -9,7 +9,7 @@ import { PersonSearchResultGridElementComponent } from './person-search-result-g
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -35,7 +35,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -9,7 +9,7 @@ import { getEntityGridElementTestComponent } from '../../../../../shared/object-
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -29,7 +29,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service'; import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service'; import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatableService } from '../../../../shared/truncatable/truncatable.s
import { ProjectListElementComponent } from './project-list-element.component'; import { ProjectListElementComponent } from './project-list-element.component';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -36,7 +36,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -36,7 +36,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -14,7 +14,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -36,7 +36,7 @@ const mockItemWithoutMetadata: ItemSearchResult = Object.assign(
new ItemSearchResult(), new ItemSearchResult(),
{ {
indexableObject: Object.assign(new Item(), { indexableObject: Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -11,7 +11,7 @@ import {
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'organization.foundingDate': [ 'organization.foundingDate': [
{ {

View File

@@ -11,7 +11,7 @@ import {
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'person.email': [ 'person.email': [
{ {

View File

@@ -11,7 +11,7 @@ import {
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils'; import { createSuccessfulRemoteDataObject$ } from '../../../../shared/testing/utils';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
// 'project.identifier.status': [ // 'project.identifier.status': [
// { // {

View File

@@ -4,6 +4,7 @@ import { Item } from '../../core/shared/item.model';
import { RemoteData } from '../../core/data/remote-data'; import { RemoteData } from '../../core/data/remote-data';
import { Bitstream } from '../../core/shared/bitstream.model'; import { Bitstream } from '../../core/shared/bitstream.model';
import { PaginatedList } from '../../core/data/paginated-list'; import { PaginatedList } from '../../core/data/paginated-list';
import { createPaginatedList, createSuccessfulRemoteDataObject$ } from '../testing/utils';
/* tslint:disable:no-shadowed-variable */ /* tslint:disable:no-shadowed-variable */
export const MockItem: Item = Object.assign(new Item(), { export const MockItem: Item = Object.assign(new Item(), {
@@ -12,6 +13,9 @@ export const MockItem: Item = Object.assign(new Item(), {
isArchived: true, isArchived: true,
isDiscoverable: true, isDiscoverable: true,
isWithdrawn: false, isWithdrawn: false,
bundles: createSuccessfulRemoteDataObject$(createPaginatedList([
{
name: 'ORIGINAL',
bitstreams: observableOf(Object.assign({ bitstreams: observableOf(Object.assign({
self: 'dspace-angular://aggregated/object/1507836003548', self: 'dspace-angular://aggregated/object/1507836003548',
requestPending: false, requestPending: false,
@@ -107,7 +111,9 @@ export const MockItem: Item = Object.assign(new Item(), {
} }
] ]
} }
}) as RemoteData<PaginatedList<Bitstream>>), }))
}
])),
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/items/0ec7ff22-f211-40ab-a69e-c819b0b1f357', self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/items/0ec7ff22-f211-40ab-a69e-c819b0b1f357',
id: '0ec7ff22-f211-40ab-a69e-c819b0b1f357', id: '0ec7ff22-f211-40ab-a69e-c819b0b1f357',
uuid: '0ec7ff22-f211-40ab-a69e-c819b0b1f357', uuid: '0ec7ff22-f211-40ab-a69e-c819b0b1f357',

View File

@@ -41,7 +41,7 @@ const searchService = getMockSearchService();
const requestServce = getMockRequestService(); const requestServce = getMockRequestService();
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -25,7 +25,7 @@ let mockObject: Item;
const mockDataService = {}; const mockDataService = {};
mockObject = Object.assign(new Item(), { mockObject = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -38,7 +38,7 @@ const searchService = getMockSearchService();
const requestServce = getMockRequestService(); const requestServce = getMockRequestService();
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -32,7 +32,7 @@ const searchService = getMockSearchService();
const requestServce = getMockRequestService(); const requestServce = getMockRequestService();
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -37,7 +37,7 @@ const searchService = getMockSearchService();
const requestServce = getMockRequestService(); const requestServce = getMockRequestService();
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -21,7 +21,7 @@ const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ let component: ItemDetailPreviewFieldComponent;
let fixture: ComponentFixture<ItemDetailPreviewFieldComponent>; let fixture: ComponentFixture<ItemDetailPreviewFieldComponent>;
const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), { const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.contributor.author': [ 'dc.contributor.author': [
{ {

View File

@@ -30,7 +30,7 @@ let component: ItemDetailPreviewComponent;
let fixture: ComponentFixture<ItemDetailPreviewComponent>; let fixture: ComponentFixture<ItemDetailPreviewComponent>;
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf(new RemoteData(false, false, true, undefined, new PaginatedList(new PageInfo(), []))), bundles: observableOf(new RemoteData(false, false, true, undefined, new PaginatedList(new PageInfo(), []))),
metadata: { metadata: {
'dc.contributor.author': [ 'dc.contributor.author': [
{ {
@@ -88,7 +88,7 @@ describe('ItemDetailPreviewComponent', () => {
component.object = { hitHighlights: {} } as any; component.object = { hitHighlights: {} } as any;
component.item = mockItem; component.item = mockItem;
component.separator = ', '; component.separator = ', ';
spyOn(component.item, 'getFiles').and.returnValue(mockItem.bitstreams); spyOn(component.item, 'getFiles').and.returnValue(mockItem.bundles);
fixture.detectChanges(); fixture.detectChanges();
})); }));

View File

@@ -18,7 +18,7 @@ const mockResultObject: ItemSearchResult = new ItemSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
mockResultObject.indexableObject = Object.assign(new Item(), { mockResultObject.indexableObject = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -21,7 +21,7 @@ const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -20,7 +20,7 @@ const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult(
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -20,7 +20,7 @@ const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult(
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -12,7 +12,7 @@ import { PaginatedList } from '../../../../../core/data/paginated-list';
import { PageInfo } from '../../../../../core/shared/page-info.model'; import { PageInfo } from '../../../../../core/shared/page-info.model';
const mockItem = Object.assign(new Item(), { const mockItem = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -15,7 +15,7 @@ import { PublicationSearchResultGridElementComponent } from './publication-searc
const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithMetadata.hitHighlights = {}; mockItemWithMetadata.hitHighlights = {};
mockItemWithMetadata.indexableObject = Object.assign(new Item(), { mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -47,7 +47,7 @@ mockItemWithMetadata.indexableObject = Object.assign(new Item(), {
const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult(); const mockItemWithoutMetadata: ItemSearchResult = new ItemSearchResult();
mockItemWithoutMetadata.hitHighlights = {}; mockItemWithoutMetadata.hitHighlights = {};
mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), { mockItemWithoutMetadata.indexableObject = Object.assign(new Item(), {
bitstreams: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])), bundles: createSuccessfulRemoteDataObject$(new PaginatedList(new PageInfo(), [])),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -8,7 +8,7 @@ import { TruncatableService } from '../../../../truncatable/truncatable.service'
import { of as observableOf } from 'rxjs'; import { of as observableOf } from 'rxjs';
const mockItem: Item = Object.assign(new Item(), { const mockItem: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -14,7 +14,7 @@ let fixture: ComponentFixture<ItemTypeBadgeComponent>;
const type = 'authorOfPublication'; const type = 'authorOfPublication';
const mockItemWithRelationshipType = Object.assign(new Item(), { const mockItemWithRelationshipType = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'relationship.type': [ 'relationship.type': [
{ {
@@ -26,7 +26,7 @@ const mockItemWithRelationshipType = Object.assign(new Item(), {
}); });
const mockItemWithoutRelationshipType = Object.assign(new Item(), { const mockItemWithoutRelationshipType = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -23,7 +23,7 @@ const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -14,7 +14,7 @@ let component: ItemListPreviewComponent;
let fixture: ComponentFixture<ItemListPreviewComponent>; let fixture: ComponentFixture<ItemListPreviewComponent>;
const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), { const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.contributor.author': [ 'dc.contributor.author': [
{ {
@@ -31,7 +31,7 @@ const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), {
} }
}); });
const mockItemWithoutAuthorAndDate: Item = Object.assign(new Item(), { const mockItemWithoutAuthorAndDate: Item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -19,7 +19,7 @@ const mockResultObject: ItemSearchResult = new ItemSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
mockResultObject.indexableObject = Object.assign(new Item(), { mockResultObject.indexableObject = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -22,7 +22,7 @@ const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -21,7 +21,7 @@ const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult(
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -21,7 +21,7 @@ const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult(
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -14,7 +14,7 @@ let fixture: ComponentFixture<PublicationSearchResultListElementComponent>;
const mockItemWithMetadata: ItemSearchResult = Object.assign(new ItemSearchResult(), { const mockItemWithMetadata: ItemSearchResult = Object.assign(new ItemSearchResult(), {
indexableObject: indexableObject:
Object.assign(new Item(), { Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {
@@ -52,7 +52,7 @@ const mockItemWithMetadata: ItemSearchResult = Object.assign(new ItemSearchResul
const mockItemWithoutMetadata: ItemSearchResult = Object.assign(new ItemSearchResult(), { const mockItemWithoutMetadata: ItemSearchResult = Object.assign(new ItemSearchResult(), {
indexableObject: indexableObject:
Object.assign(new Item(), { Object.assign(new Item(), {
bitstreams: observableOf({}), bundles: observableOf({}),
metadata: { metadata: {
'dc.title': [ 'dc.title': [
{ {

View File

@@ -24,7 +24,7 @@ describe('ItemSelectComponent', () => {
const mockItemList = [ const mockItemList = [
Object.assign(new Item(), { Object.assign(new Item(), {
id: 'id1', id: 'id1',
bitstreams: of({}), bundles: of({}),
metadata: [ metadata: [
{ {
key: 'dc.title', key: 'dc.title',
@@ -39,7 +39,7 @@ describe('ItemSelectComponent', () => {
}), }),
Object.assign(new Item(), { Object.assign(new Item(), {
id: 'id2', id: 'id2',
bitstreams: of({}), bundles: of({}),
metadata: [ metadata: [
{ {
key: 'dc.title', key: 'dc.title',

View File

@@ -2,6 +2,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RemoteData } from '../../core/data/remote-data'; import { RemoteData } from '../../core/data/remote-data';
import { Observable, of as observableOf } from 'rxjs'; import { Observable, of as observableOf } from 'rxjs';
import { RemoteDataError } from '../../core/data/remote-data-error'; import { RemoteDataError } from '../../core/data/remote-data-error';
import { PaginatedList } from '../../core/data/paginated-list';
import { PageInfo } from '../../core/shared/page-info.model';
/** /**
* Returns true if a Native Element has a specified css class. * Returns true if a Native Element has a specified css class.
@@ -122,6 +124,14 @@ export function createPendingRemoteDataObject$<T>(object?: T): Observable<Remote
return observableOf(createPendingRemoteDataObject(object)); return observableOf(createPendingRemoteDataObject(object));
} }
/**
* Method to create a paginated list for an array of objects
* @param objects An array representing the paginated list's page
*/
export function createPaginatedList<T>(objects?: T[]): PaginatedList<T> {
return new PaginatedList(new PageInfo(), objects);
}
/** /**
* Creates a jasmine spy for an exported function * Creates a jasmine spy for an exported function
* @param target The object to spy on * @param target The object to spy on