1% Licensed under the Apache License, Version 2.0 (the "License"); you may not 2% use this file except in compliance with the License. You may obtain a copy of 3% the License at 4% 5% http://www.apache.org/licenses/LICENSE-2.0 6% 7% Unless required by applicable law or agreed to in writing, software 8% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 9% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 10% License for the specific language governing permissions and limitations under 11% the License. 12 13-module(cpse_test_open_close_delete). 14-compile(export_all). 15-compile(nowarn_export_all). 16 17 18-include_lib("eunit/include/eunit.hrl"). 19 20 21setup_each() -> 22 cpse_util:dbname(). 23 24 25teardown_each(DbName) -> 26 case couch_server:exists(DbName) of 27 true -> ok = couch_server:delete(DbName, []); 28 false -> ok 29 end. 30 31 32cpse_open_non_existent(DbName) -> 33 % Try twice to check that a failed open doesn't create 34 % the database for some reason. 35 ?assertEqual({not_found, no_db_file}, cpse_util:open_db(DbName)), 36 ?assertEqual({not_found, no_db_file}, cpse_util:open_db(DbName)). 37 38 39cpse_open_create(DbName) -> 40 ?assertEqual(false, couch_server:exists(DbName)), 41 ?assertEqual({not_found, no_db_file}, cpse_util:open_db(DbName)), 42 ?assertMatch({ok, _}, cpse_util:create_db(DbName)), 43 ?assertEqual(true, couch_server:exists(DbName)). 44 45 46cpse_open_when_exists(DbName) -> 47 ?assertEqual(false, couch_server:exists(DbName)), 48 ?assertEqual({not_found, no_db_file}, cpse_util:open_db(DbName)), 49 ?assertMatch({ok, _}, cpse_util:create_db(DbName)), 50 ?assertEqual(file_exists, cpse_util:create_db(DbName)). 51 52 53cpse_terminate(DbName) -> 54 ?assertEqual(false, couch_server:exists(DbName)), 55 ?assertEqual({not_found, no_db_file}, cpse_util:open_db(DbName)), 56 ?assertEqual(ok, cycle_db(DbName, create_db)), 57 ?assertEqual(true, couch_server:exists(DbName)). 58 59 60cpse_rapid_recycle(DbName) -> 61 ?assertEqual(ok, cycle_db(DbName, create_db)), 62 lists:foreach(fun(_) -> 63 ?assertEqual(ok, cycle_db(DbName, open_db)) 64 end, lists:seq(1, 100)). 65 66 67cpse_delete(DbName) -> 68 ?assertEqual(false, couch_server:exists(DbName)), 69 ?assertMatch(ok, cycle_db(DbName, create_db)), 70 ?assertEqual(true, couch_server:exists(DbName)), 71 ?assertEqual(ok, couch_server:delete(DbName, [])), 72 ?assertEqual(false, couch_server:exists(DbName)). 73 74 75cycle_db(DbName, Type) -> 76 {ok, Db} = cpse_util:Type(DbName), 77 cpse_util:shutdown_db(Db). 78