web-atoms-core
Version:
45 lines (34 loc) • 1.07 kB
text/typescript
import Assert from "@web-atoms/unit-test/dist/Assert";
import Test from "@web-atoms/unit-test/dist/Test";
import { PropertyBinding } from "../../core/PropertyBinding";
import { AtomTest } from "../../unit/AtomTest";
class SourceClass {
public source: string = "5";
}
class DestinationClass {
public destination: number;
}
export class PropertyBinderTest extends AtomTest {
public twoWayBindingTest(): void {
const source = new SourceClass();
const destination = new DestinationClass();
const pb = new PropertyBinding(
destination,
null,
"destination",
[["this", "source"]],
true, {
fromSource(v): any {
return parseInt(v, 10);
},
fromTarget(v: any): any {
return v + "";
}
}, source
);
Assert.equals(5, destination.destination);
destination.destination = 10;
Assert.equals("10", source.source);
}
}