Skip to content

Commit 099685d

Browse files
committed
Serialization fixed, tests implemented
1 parent 62da2bf commit 099685d

File tree

2 files changed

+81
-3
lines changed

2 files changed

+81
-3
lines changed

src/internal/object-serializer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export class ObjectSerializer {
6060
}
6161
return transformedData;
6262
} else if (type === "Date") {
63-
return data.toString();
63+
return (data as Date).toISOString();
6464
} else {
6565
if (enumsMap[type]) {
6666
return data;
@@ -93,10 +93,10 @@ export class ObjectSerializer {
9393
* Deserialize object from json string
9494
*/
9595
public static deserialize(data: any, type: string) {
96-
// polymorphism may change the actual type.
97-
type = ObjectSerializer.findCorrectType(data, type);
9896
if (data === undefined || data === null) {
9997
return data;
98+
// polymorphism may change the actual type.
99+
type = ObjectSerializer.findCorrectType(data, type);
100100
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
101101
return data;
102102
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6

tests/api-test.ts

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,84 @@ describe('EmailApi', function() {
185185
expect(displayName.value).toContain("Thomas");
186186
});
187187

188+
it('Create calendar email #pipeline', async function() {
189+
var calendar = new models.CalendarDto();
190+
calendar.attendees = [
191+
new models.MailAddress('Attendee Name', 'attendee@am.ru', 'Accepted')
192+
];
193+
calendar.description = 'Some description';
194+
calendar.summary = 'Some summary';
195+
calendar.organizer = new models.MailAddress('Organizer Name', 'organizer@am.ru');
196+
calendar.startDate = getDate(undefined, 1);
197+
calendar.endDate = getDate(calendar.startDate, 1);
198+
calendar.location = 'Some location';
199+
var folderLocation = new models.StorageFolderLocation(storage, folder);
200+
var calendarFile = uuidv4() + '.ics';
201+
await api.saveCalendarModel(
202+
new requests.SaveCalendarModelRequest(
203+
calendarFile,
204+
new models.StorageModelRqOfCalendarDto(
205+
calendar,
206+
folderLocation)));
207+
var exists = await api.objectExists(
208+
new requests.ObjectExistsRequest(folder + '/' + calendarFile, storage));
209+
expect(exists.body.exists).toBeTrue();
210+
211+
var alternate = await api.convertCalendarModelToAlternate(
212+
new requests.ConvertCalendarModelToAlternateRequest(
213+
new models.CalendarDtoAlternateRq(calendar, 'Create')));
214+
215+
var email = new models.EmailDto();
216+
email.alternateViews = [alternate.body];
217+
email.from = new models.MailAddress('From address', 'cloud.em@yandex.ru');
218+
email.to = [new models.MailAddress('To address', 'cloud.em@yandex.ru')];
219+
email.subject = 'Some subject';
220+
email.body = 'Some body';
221+
222+
var emailFile = uuidv4() + '.eml';
223+
await api.saveEmailModel(
224+
new requests.SaveEmailModelRequest(
225+
'Eml', emailFile, new models.StorageModelRqOfEmailDto(
226+
email, folderLocation)));
227+
228+
var downloaded = await api.downloadFile(
229+
new requests.DownloadFileRequest(
230+
folder + '/' + emailFile, storage));
231+
var downloadedRaw = downloaded.body.toString();
232+
expect(downloadedRaw).toContain('cloud.em@yandex.ru');
233+
});
234+
235+
it('Save contact model #pipeline', async function() {
236+
var contact = new models.ContactDto();
237+
contact.gender = 'Male';
238+
contact.surname = 'Thomas';
239+
contact.givenName = 'Alex';
240+
contact.emailAddresses = [new models.EmailAddress(
241+
new models.EnumWithCustomOfEmailAddressCategory('Work'),
242+
'Alex Thomas', true, undefined, 'alex.thomas@work.com')];
243+
contact.phoneNumbers = [new models.PhoneNumber(
244+
new models.EnumWithCustomOfPhoneNumberCategory('Work'),
245+
'+49211424721', true)];
246+
247+
var contactFile = uuidv4() + '.vcf';
248+
await api.saveContactModel(
249+
new requests.SaveContactModelRequest(
250+
'VCard', contactFile, new models.StorageModelRqOfContactDto(
251+
contact, new models.StorageFolderLocation(storage, folder))));
252+
var exists = await api.objectExists(
253+
new requests.ObjectExistsRequest(
254+
folder + '/' + contactFile, storage));
255+
expect(exists.body.exists).toBeTrue();
256+
});
257+
258+
it('Parse contact model from image', async function() {
259+
var imageData = fs.readFileSync('tests/data/test_single_0001.png').toString('base64');
260+
var result = await api.aiBcrParseModel(new requests.AiBcrParseModelRequest(
261+
new models.AiBcrBase64Rq(undefined, [new models.AiBcrBase64Image(true, imageData)])));
262+
expect(result.body.value.length).toEqual(1);
263+
expect(result.body.value[0].displayName).toContain("Thomas");
264+
});
265+
188266
async function createCalendar(startDate? : Date) :Promise<string> {
189267
var fileName = uuidv4() + '.ics';
190268
startDate = (startDate == null) ? getDate(undefined, 1) : startDate;

0 commit comments

Comments
 (0)