Skip to content
Snippets Groups Projects
Commit 6f7dc866 authored by gakin's avatar gakin
Browse files

SSDM-2005 V3 AS API - JS tests

SVN: 34269
parent 9672caf0
No related branches found
No related tags found
No related merge requests found
define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, openbis, common) {
define([ 'jquery', 'underscore', 'openbis', 'test/common', 'dto/entity/material/MaterialCreation', 'dto/id/entitytype/EntityTypePermId', 'dto/deletion/material/MaterialDeletionOptions', 'dto/entity/material/MaterialUpdate' ], function($, _, openbis, common, MaterialCreation, EntityTypePermId, MaterialDeletionOptions, MaterialUpdate) {
return function() {
QUnit.module("Material tests");
......@@ -22,6 +22,109 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
done();
});
});
QUnit.test("searchMaterials()", function(assert) {
var c = new common(assert);
var done = assert.async();
$.when(c.createFacadeAndLogin(), c.createMaterialSearchCriterion(), c.createMaterialFetchOptions()).then(function(facade, criterion, fetchOptions) {
criterion.withCode().thatEquals("H2O");
return facade.searchMaterials(criterion, fetchOptions).done(function() {
facade.logout();
})
}).done(function(materials) {
c.assertObjectsCount(materials, 1);
var material = materials[0];
c.assertEqual(material.getCode(), "H2O", "Material code");
c.assertEqual(material.getType().getCode(), "COMPOUND", "Type code");
var properties = material.getProperties();
c.assertEqual(Object.keys(properties), "DESCRIPTION", "Water");
done();
}).fail(function(error) {
c.fail(error.message);
done();
});
});
QUnit.test("createAndDeleteAMaterial()", function(assert) {
var c = new common(assert);
var done = assert.async();
var code = "CREATE_JSON_MATERIAL_" + (new Date().getTime());
var materialCreation = new MaterialCreation();
materialCreation.setTypeId(new EntityTypePermId("COMPOUND"));
materialCreation.setCode(code);
materialCreation.setProperty("DESCRIPTION", "Metal");
$.when(c.createFacadeAndLogin(), c.createMaterialPermId(code, "COMPOUND"), c.createMaterialFetchOptions()).then(function(facade, identifier, fetchOptions) {
return facade.createMaterials([ materialCreation ]).then(function(permIds) {
return facade.mapMaterials(permIds, fetchOptions).done(function() {
var options = new MaterialDeletionOptions();
options.setReason("test");
facade.deleteMaterials([ identifier ], options).then(function(deletionId) {
console.log(deletionId);
facade.logout();
}).fail(function(error) {
c.fail(error.message);
done();
});
})
})
}).done(function(materials) {
var keys = Object.keys(materials);
c.assertObjectsCount(keys, 1);
var material = materials[keys[0]];
c.assertEqual(material.getCode(), code, "Material code");
c.assertEqual(material.getType().getCode(), "COMPOUND", "Type code");
var properties = material.getProperties();
c.assertEqual(properties["DESCRIPTION"], "Metal", "Property DESCRIPTION");
done();
}).fail(function(error) {
c.fail(error.message);
done();
});
});
QUnit.test("updateMaterials", function(assert) {
var c = new common(assert);
var done = assert.async();
var code = "UPDATE_JSON_MATERIAL_" + (new Date().getTime());
var materialCreation = new MaterialCreation();
materialCreation.setTypeId(new EntityTypePermId("COMPOUND"));
materialCreation.setCode(code);
materialCreation.setProperty("DESCRIPTION", "Metal");
c.createFacadeAndLogin().then(function(facade) {
var ids = facade.createMaterials([ materialCreation ]).then(function(permIds) {
var materialUpdate = new MaterialUpdate();
materialUpdate.setMaterialId(permIds[0]);
materialUpdate.setProperty("DESCRIPTION", "Alloy");
// materialUpdateModifier(c, materialUpdate);
return facade.updateMaterials([ materialUpdate ]).then(function() {
return permIds;
});
});
$.when(ids, c.createMaterialFetchOptions()).then(function(permIds, fetchOptions) {
return facade.mapMaterials(permIds, fetchOptions).done(function() {
facade.logout();
});
}).done(function(materials) {
var keys = Object.keys(materials);
c.assertObjectsCount(keys, 1);
var material = materials[keys[0]];
c.assertEqual(material.getCode(), code, "Material code");
c.assertEqual(material.getType().getCode(), "COMPOUND", "Type code");
var properties = material.getProperties();
c.assertEqual(properties["DESCRIPTION"], "Alloy", "Property DESCRIPTION");
done();
}).fail(function(error) {
c.fail(error.message);
done();
});
});
});
}
});
define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, openbis, common) {
define([ 'jquery', 'underscore', 'openbis', 'test/common', 'dto/entity/project/ProjectCreation', 'dto/deletion/project/ProjectDeletionOptions', 'dto/entity/project/ProjectUpdate',
'dto/id/space/SpacePermId', 'dto/entity/attachment/AttachmentCreation', ], function($, _, openbis, common, ProjectCreation, ProjectDeletionOptions, ProjectUpdate, SpacePermId, AttachmentCreation) {
return function() {
QUnit.module("Project tests");
......@@ -65,5 +66,132 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
});
});
QUnit.test("createAndDeleteAProject", function(assert) {
var c = new common(assert);
var done = assert.async();
var code = "CREATE_JSON_PROJECT_" + (new Date().getTime());
var projectCreation = new ProjectCreation();
projectCreation.setSpaceId(new SpacePermId("TEST"));
projectCreation.setCode(code);
projectCreation.setDescription("JS test project");
attachmentCreation = new AttachmentCreation();
attachmentCreation.setFileName("test_file");
attachmentCreation.setTitle("test_title");
attachmentCreation.setDescription("test_description");
attachmentCreation.setContent(btoa("hello world!"));
projectCreation.setAttachments([ attachmentCreation ]);
$.when(c.createFacadeAndLogin(), c.createProjectIdentifier("/TEST/" + code), c.createProjectFetchOptions()).then(function(facade, identifier, fetchOptions) {
return facade.createProjects([ projectCreation ]).then(function(permIds) {
return facade.mapProjects(permIds, fetchOptions).done(function() {
var options = new ProjectDeletionOptions();
options.setReason("test");
facade.deleteProjects([ identifier ], options).then(function(deletionId) {
console.log(deletionId);
facade.logout();
}).fail(function(error) {
c.fail(error.message);
done();
});
})
})
}).done(function(projects) {
var keys = Object.keys(projects);
c.assertObjectsCount(keys, 1);
var project = projects[keys[0]];
c.assertEqual(project.getCode(), code, "Project code");
c.assertEqual(project.getSpace().getCode(), "TEST", "Space code");
c.assertEqual(project.getDescription(), "JS test project", "Description");
var attachments = project.getAttachments();
c.assertEqual(attachments[0].fileName, "test_file", "Attachment file name");
c.assertEqual(attachments[0].title, "test_title", "Attachment title");
c.assertEqual(attachments[0].description, "test_description", "Attachment description");
c.assertEqual(atob(attachments[0].content), "hello world!", "Attachment content");
c.assertEqual(attachments.length, 1, "Number of attachments");
done();
}).fail(function(error) {
c.fail(error.message);
done();
});
});
var asyncUpdateProjectsTest = function(testNamePostfix, projectUpdateModifier, projectCheckerOrExpectedErrorMessage) {
QUnit.test("updateProjects" + testNamePostfix + "()", function(assert) {
var c = new common(assert);
var done = assert.async();
var expectingFailure = _.isFunction(projectCheckerOrExpectedErrorMessage) === false;
var code = "UPDATE_JSON_PROJECT_" + (new Date().getTime());
var projectCreation = new ProjectCreation();
projectCreation.setSpaceId(new SpacePermId("TEST"));
projectCreation.setCode(code);
projectCreation.setDescription("JS test project");
c.createFacadeAndLogin().then(function(facade) {
var ids = facade.createProjects([ projectCreation ]).then(function(permIds) {
var projectUpdate = new ProjectUpdate();
projectUpdate.setProjectId(permIds[0]);
projectUpdateModifier(c, projectUpdate);
return facade.updateProjects([ projectUpdate ]).then(function() {
return permIds;
});
});
$.when(ids, c.createProjectFetchOptions()).then(function(permIds, fetchOptions) {
return facade.mapProjects(permIds, fetchOptions).done(function() {
facade.logout();
});
}).done(function(projects) {
if (expectingFailure) {
c.fail("Project update didn't failed as expected.");
} else {
var keys = Object.keys(projects);
c.assertObjectsCount(keys, 1);
var project = projects[keys[0]];
projectCheckerOrExpectedErrorMessage(c, code, project);
}
done();
}).fail(function(error) {
if (expectingFailure) {
c.assertEqual(error.message, projectCheckerOrExpectedErrorMessage, "Error message");
} else {
c.fail(error.message);
}
done();
});
});
});
}
asyncUpdateProjectsTest("WithChangedSpaceAndAddedAttachment", function(c, projectUpdate) {
projectUpdate.setSpaceId(new SpacePermId("PLATONIC"));
attachmentCreation = new AttachmentCreation();
attachmentCreation.setFileName("test_file");
attachmentCreation.setTitle("test_title");
attachmentCreation.setDescription("test_description");
attachmentCreation.setContent(btoa("hello world"));
projectUpdate.getAttachments().add([ attachmentCreation ]);
}, function(c, code, project) {
c.assertEqual(project.getCode(), code, "Project code");
c.assertEqual(project.getSpace().getCode(), "PLATONIC", "Space code");
c.assertEqual(project.getDescription(), "JS test project", "Description");
var attachments = project.getAttachments();
c.assertEqual(attachments[0].fileName, "test_file", "Attachment file name");
c.assertEqual(attachments[0].title, "test_title", "Attachment title");
c.assertEqual(attachments[0].description, "test_description", "Attachment description");
c.assertEqual(atob(attachments[0].content), "hello world", "Attachment content");
c.assertEqual(attachments.length, 1, "Number of attachments");
});
asyncUpdateProjectsTest("WithUnChangedSpaceButChangedProperties", function(c, projectUpdate) {
projectUpdate.setDescription("test_description");
}, function(c, code, project) {
c.assertEqual(project.getCode(), code, "Project code");
c.assertEqual(project.getSpace().getCode(), "TEST", "Space code");
c.assertEqual(project.getDescription(), "test_description", "Description");
});
asyncUpdateProjectsTest("WithRemovedSpace", function(c, projectUpdate) {
projectUpdate.setSpaceId(null);
}, "Space id cannot be null (Context: [])");
}
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment