it("with constructor as type", function (done) { dataType = WeatherReport; dataCriteria = new Criteria().initWithExpression(dataExpression, dataParameters); dataQuerySource = DataQuery.withTypeAndCriteria(dataType, dataCriteria); dataQueryJson = serialize(dataQuerySource, require); try { expect(dataQueryJson).toBeDefined(); var dataQueryJsonObj = JSON.parse(dataQueryJson); expect(dataQueryJsonObj.weatherreport).toBeDefined(); expect(dataQueryJsonObj.weatherreport.object).toBe('spec/data/logic/model/weather-report'); expect(dataQueryJsonObj.criteria).toBeDefined(); expect(dataQueryJsonObj.criteria.prototype).toBe('montage/core/criteria'); var dataQuery = deserialize(dataQueryJson, require).then(function (dataQueryFromJson) { expect(dataQueryJson).toBeDefined(); done(); }, function (err) { fail(err); }); } catch (err) { fail(err); } });
it("with programmatic objectDescriptor as type", function (done) { var weatherReportReference = new ModuleReference().initWithIdAndRequire("spec/data/logic/model/weather-report", require), weatherReportDescriptor = new ModuleObjectDescriptor().initWithModuleAndExportName(weatherReportReference, "WeatherReport"); weatherReportDescriptor.addPropertyDescriptor(new PropertyDescriptor().initWithNameObjectDescriptorAndCardinality("title", weatherReportDescriptor, 1)); dataType = weatherReportDescriptor; dataCriteria = new Criteria().initWithExpression(dataExpression, dataParameters); dataQuerySource = DataQuery.withTypeAndCriteria(dataType, dataCriteria); dataQueryJson = serialize(dataQuerySource, require); try { expect(dataQueryJson).toBeDefined(); var dataQueryJsonObj = JSON.parse(dataQueryJson); expect(dataQueryJsonObj.objectDescriptor_weatherreport).toBeDefined(); expect(dataQueryJsonObj.objectDescriptor_weatherreport.prototype).toBeDefined(); // expect(dataQueryJsonObj.weatherreport.object).toBe('spec/data/logic/model/weather-report'); expect(dataQueryJsonObj.criteria).toBeDefined(); expect(dataQueryJsonObj.criteria.prototype).toBe('montage/core/criteria'); deserialize(dataQueryJson, require).then(function (dataQueryFromJson) { expect(dataQueryFromJson).toBeDefined(); done(); }, function (err) { fail(err); }); } catch (err) { fail(err); } });
it("with mjson objectDescriptor as type", function (done) { dataType = movieDescriptor; dataCriteria = new Criteria().initWithExpression(dataExpression, dataParameters); dataQuerySource = DataQuery.withTypeAndCriteria(dataType, dataCriteria); dataQueryJson = serialize(dataQuerySource, require); try { expect(dataQueryJson).toBeDefined(); dataQueryJsonObj = JSON.parse(dataQueryJson); expect(dataQueryJsonObj.root.values.typeModule["%"]).toBe(movieDescriptor.objectDescriptorInstanceModule.id); expect(dataQueryJsonObj.criteria).toBeDefined(); expect(dataQueryJsonObj.criteria.prototype).toBe('montage/core/criteria'); deserialize(dataQueryJson, require).then(function (dataQueryFromJson) { expect(dataQueryFromJson).toBeDefined(); expect(dataQueryFromJson.type).toBe(movieDescriptor); done(); }, function (err) { fail(err); }); } catch (err) { fail(err); } });
it("can be created", function () { var type = new ObjectDescriptor(), query = DataQuery.withTypeAndCriteria(type, {}), stream; expect(new DataStream()).toBeDefined(); stream = DataStream.withTypeOrSelector(type); expect(stream).toBeDefined(); expect(stream.query).toBeDefined(); expect(stream.query.type).toBe(type); stream = DataStream.withTypeOrSelector(query); expect(stream).toBeDefined(); expect(stream.query).toBe(query); expect(stream.query.type).toBe(type); });