1+
2+ var AdaptableController = require ( "../src/Controllers/AdaptableController" ) . AdaptableController ;
3+ var FilesAdapter = require ( "../src/Adapters/Files/FilesAdapter" ) . default ;
4+ var FilesController = require ( "../src/Controllers/FilesController" ) . FilesController ;
5+
6+ var MockController = function ( options ) {
7+ AdaptableController . call ( this , options ) ;
8+ }
9+ MockController . prototype = Object . create ( AdaptableController . prototype ) ;
10+ MockController . prototype . constructor = AdaptableController ;
11+
12+ describe ( "AdaptableController" , ( ) => {
13+
14+ it ( "should use the provided adapter" , ( done ) => {
15+ var adapter = new FilesAdapter ( ) ;
16+ var controller = new FilesController ( adapter ) ;
17+ expect ( controller . adapter ) . toBe ( adapter ) ;
18+ // make sure _adapter is private
19+ expect ( controller . _adapter ) . toBe ( undefined ) ;
20+ // Override _adapter is not doing anything
21+ controller . _adapter = "Hello" ;
22+ expect ( controller . adapter ) . toBe ( adapter ) ;
23+ done ( ) ;
24+ } ) ;
25+
26+ it ( "should throw when creating a new mock controller" , ( done ) => {
27+ var adapter = new FilesAdapter ( ) ;
28+ expect ( ( ) => {
29+ new MockController ( adapter ) ;
30+ } ) . toThrow ( ) ;
31+ done ( ) ;
32+ } ) ;
33+
34+ it ( "should fail setting the wrong adapter to the controller" , ( done ) => {
35+ function WrongAdapter ( ) { } ;
36+ var adapter = new FilesAdapter ( ) ;
37+ var controller = new FilesController ( adapter ) ;
38+ var otherAdapter = new WrongAdapter ( ) ;
39+ expect ( ( ) => {
40+ controller . adapter = otherAdapter ;
41+ } ) . toThrow ( ) ;
42+ done ( ) ;
43+ } ) ;
44+
45+ it ( "should fail to instantiate a controller with wrong adapter" , ( done ) => {
46+ function WrongAdapter ( ) { } ;
47+ var adapter = new WrongAdapter ( ) ;
48+ expect ( ( ) => {
49+ new FilesController ( adapter ) ;
50+ } ) . toThrow ( ) ;
51+ done ( ) ;
52+ } ) ;
53+
54+ it ( "should fail to instantiate a controller without an adapter" , ( done ) => {
55+ expect ( ( ) => {
56+ new FilesController ( ) ;
57+ } ) . toThrow ( ) ;
58+ done ( ) ;
59+ } ) ;
60+
61+ it ( "should accept an object adapter" , ( done ) => {
62+ var adapter = {
63+ createFile : function ( config , filename , data ) { } ,
64+ deleteFile : function ( config , filename ) { } ,
65+ getFileData : function ( config , filename ) { } ,
66+ getFileLocation : function ( config , filename ) { } ,
67+ }
68+ expect ( ( ) => {
69+ new FilesController ( adapter ) ;
70+ } ) . not . toThrow ( ) ;
71+ done ( ) ;
72+ } ) ;
73+
74+ it ( "should accept an object adapter" , ( done ) => {
75+ function AGoodAdapter ( ) { } ;
76+ AGoodAdapter . prototype . createFile = function ( config , filename , data ) { } ;
77+ AGoodAdapter . prototype . deleteFile = function ( config , filename ) { } ;
78+ AGoodAdapter . prototype . getFileData = function ( config , filename ) { } ;
79+ AGoodAdapter . prototype . getFileLocation = function ( config , filename ) { } ;
80+
81+ var adapter = new AGoodAdapter ( ) ;
82+ expect ( ( ) => {
83+ new FilesController ( adapter ) ;
84+ } ) . not . toThrow ( ) ;
85+ done ( ) ;
86+ } ) ;
87+ } ) ;
0 commit comments