[Groonga-commit] groonga/gcs [master] Add tests for deleting of existing index fields

Back to archive index

null+****@clear***** null+****@clear*****
2012年 8月 6日 (月) 15:02:27 JST


SHIMODA Hiroshi	2012-08-06 15:02:27 +0900 (Mon, 06 Aug 2012)

  New Revision: e9bb5b03d173a4083a033ea6c9bf243b0d353836
  https://github.com/groonga/gcs/commit/e9bb5b03d173a4083a033ea6c9bf243b0d353836

  Log:
    Add tests for deleting of existing index fields

  Modified files:
    test/cs-commands.test.js

  Modified: test/cs-commands.test.js (+34 -40)
===================================================================
--- test/cs-commands.test.js    2012-08-06 14:56:45 +0900 (5d3058d)
+++ test/cs-commands.test.js    2012-08-06 15:02:27 +0900 (5be9b71)
@@ -159,90 +159,84 @@ suite('cs-configure-fields', function() {
   setup(commonSetup);
   teardown(commonTeardown);
 
-  test('create text field', function(done) {
+  function testCreateField(done, name, type) {
     utils
       .run('cs-create-domain',
            '--domain-name', 'companies',
            '--database-path', temporaryDatabase.path)
       .run('cs-configure-fields',
            '--domain-name', 'companies',
-           '--name', 'name',
-           '--type', 'text',
+           '--name', name,
+           '--type', type,
            '--database-path', temporaryDatabase.path)
       .next(function(result) {
         assert.equal(result.code, 0);
         assert.equal(result.output.stdout,
                      'Updated 1 Index Field:\n' +
-                     'name RequiresIndexDocuments text ()\n');
+                     name + ' RequiresIndexDocuments ' + type + ' ()\n');
 
         context.reopen();
         var domain = new Domain('companies', context);
-        var field = domain.getIndexField('name');
+        var field = domain.getIndexField(name);
         assert.deepEqual({ type: field.type, exists: field.exists() },
-                         { type: 'text', exists: true });
+                         { type: type, exists: true });
 
         done();
       })
       .error(function(e) {
         done(e);
       });
-  });
+  }
 
+  test('create text field', function(done) {
+    testCreateField(done, 'name', 'text');
+  });
   test('create uint field', function(done) {
+    testCreateField(done, 'age', 'uint');
+  });
+  test('create literal field', function(done) {
+    testCreateField(done, 'product', 'literal');
+  });
+
+  function testDeleteField(done, name, type) {
     utils
       .run('cs-create-domain',
            '--domain-name', 'companies',
            '--database-path', temporaryDatabase.path)
       .run('cs-configure-fields',
            '--domain-name', 'companies',
-           '--name', 'age',
-           '--type', 'uint',
-           '--database-path', temporaryDatabase.path)
-      .next(function(result) {
-        assert.equal(result.code, 0);
-        assert.equal(result.output.stdout,
-                     'Updated 1 Index Field:\n' +
-                     'age RequiresIndexDocuments uint ()\n');
-
-        context.reopen();
-        var domain = new Domain('companies', context);
-        var field = domain.getIndexField('age');
-        assert.deepEqual({ type: field.type, exists: field.exists() },
-                         { type: 'uint', exists: true });
-
-        done();
-      })
-      .error(function(e) {
-        done(e);
-      });
-  });
-
-  test('create literal field', function(done) {
-    utils
-      .run('cs-create-domain',
-           '--domain-name', 'companies',
+           '--name', name,
+           '--type', type,
            '--database-path', temporaryDatabase.path)
       .run('cs-configure-fields',
            '--domain-name', 'companies',
-           '--name', 'product',
-           '--type', 'literal',
+           '--name', name,
+           '--delete',
            '--database-path', temporaryDatabase.path)
       .next(function(result) {
         assert.equal(result.code, 0);
         assert.equal(result.output.stdout,
-                     'Updated 1 Index Field:\n' +
-                     'product RequiresIndexDocuments literal ()\n');
+                     'Updated 1 Index Field:\n';
 
         context.reopen();
         var domain = new Domain('companies', context);
-        var field = domain.getIndexField('product');
-        assert.deepEqual({ type: field.type, exists: field.exists() },
-                         { type: 'literal', exists: true });
+        var field = domain.getIndexField(name);
+        assert.isFalse(field.exists());
 
         done();
       })
       .error(function(e) {
         done(e);
       });
+  }
+
+  test('delete text field', function(done) {
+    testDeleteField(done, 'name', 'text');
+  });
+  test('delete uint field', function(done) {
+    testDeleteField(done, 'age', 'uint');
+  });
+  test('delete literal field', function(done) {
+    testDeleteField(done, 'product', 'literal');
   });
 });
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Download 



Groonga-commit メーリングリストの案内
Back to archive index