/********************************************************************************
 * Copyright (c) 2020 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0
 *
 * SPDX-License-Identifier: EPL-2.0
 ********************************************************************************/

import {IAPIEmailAttachmentModel, IAPIEmailModel} from "../core/api/mail";

export function createEmailModelMock(mailId: string, options?: Partial<IAPIEmailModel>): IAPIEmailModel {
    return {
        ...{} as IAPIEmailModel,
        identifier: mailId,
        attachments: [],
        ...options
    };
}

export function createListOfEmailAttachmentModelMocks(name, size: number): IAPIEmailAttachmentModel[] {
    return Array(size).fill(0).map((_, id) => createEmailAttachmentModelMock(name + " " + id));
}

export function createEmailAttachmentModelMock(name: string, options?: Partial<IAPIEmailAttachmentModel>): IAPIEmailAttachmentModel {
    return {
        ...{} as IAPIEmailAttachmentModel,
        name,
        ...options
    };
}
