blob: 58f52dd013e9610b074759c47e897aae994d097f [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Ember from 'ember';
import DataProcessor from '../../../utils/data-processor';
import ColumnDefinition from '../../../utils/column-definition';
import { module, test } from 'qunit';
module('Unit | Utility | data processor');
test('Class creation test', function(assert) {
assert.ok(DataProcessor);
});
test('Instance default test', function(assert) {
var processor;
Ember.run(function () {
processor = DataProcessor.create({
tableDefinition: Ember.Object.create(),
startSearch: function () {
// Test Search
},
startSort: function () {
// Test Sort
}
});
});
assert.ok(processor);
assert.equal(processor.get('isSorting'), false);
assert.equal(processor.get('isSearching'), false);
assert.ok(processor._searchObserver);
assert.ok(processor._sortObserver);
assert.ok(processor.startSearch);
assert.ok(processor.startSort);
assert.ok(processor.compareFunction);
assert.ok(processor.totalPages);
assert.ok(processor.processedRows);
});
test('compareFunction test', function(assert) {
var processor;
Ember.run(function () {
processor = DataProcessor.create({
tableDefinition: Ember.Object.create(),
startSearch: function () {},
startSort: function () {}
});
});
assert.equal(processor.compareFunction(1, 1), 0);
assert.equal(processor.compareFunction(1, 2), -1);
assert.equal(processor.compareFunction(2, 1), 1);
assert.equal(processor.compareFunction("a", "a"), 0);
assert.equal(processor.compareFunction("a", "b"), -1);
assert.equal(processor.compareFunction("b", "a"), 1);
assert.equal(processor.compareFunction(null, null), -1);
assert.equal(processor.compareFunction(1, null), 1);
assert.equal(processor.compareFunction(null, 2), -1);
assert.equal(processor.compareFunction("a", null), 1);
assert.equal(processor.compareFunction(null, "b"), -1);
assert.equal(processor.compareFunction(undefined, undefined), -1);
assert.equal(processor.compareFunction(1, undefined), 1);
assert.equal(processor.compareFunction(undefined, 2), -1);
assert.equal(processor.compareFunction("a", undefined), 1);
assert.equal(processor.compareFunction(undefined, "b"), -1);
});
test('startSearch test', function(assert) {
var processor,
runLater = Ember.run.later;
assert.expect(3);
Ember.run.later = function (callback) {
callback();
assert.equal(processor.get("_searchedRows.length"), 2);
assert.equal(processor.get("_searchedRows.0.foo"), "Foo1");
assert.equal(processor.get("_searchedRows.1.foo"), "Foo12");
Ember.run.later = runLater; // Reset
};
Ember.run(function () {
processor = DataProcessor.create({
tableDefinition: Ember.Object.create({
searchText: "foo1",
columns: [ColumnDefinition.create({
id: "foo",
contentPath: 'foo'
}), ColumnDefinition.create({
id: "bar",
contentPath: 'bar'
})]
}),
startSort: function () {
// Test Sort
},
_sortedRows: [Ember.Object.create({
foo: "Foo1",
bar: "Bar1"
}), Ember.Object.create({
foo: "Foo12",
bar: "Bar2"
}), Ember.Object.create({
foo: "Foo3",
bar: "Bar3"
}), Ember.Object.create({
foo: "Foo4",
bar: "Bar4"
})],
});
});
});