From 276a1837383eb9604f30d6d9070d8ccfdffa7463 Mon Sep 17 00:00:00 2001 From: Kallfaktorn Date: Tue, 22 Feb 2011 00:14:11 +0100 Subject: [PATCH] clear with test. --- mnesia/ggs_db.erl | 13 ++++++++++++- mnesia/ggs_db_test.erl | 11 +++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/mnesia/ggs_db.erl b/mnesia/ggs_db.erl index 9c7cb3c..eef1415 100644 --- a/mnesia/ggs_db.erl +++ b/mnesia/ggs_db.erl @@ -7,7 +7,7 @@ -module(ggs_db). -import(mnesia). %-compile({no_auto_import,[length/2]}). --export([init/0,setItem/4,getItem/3,removeItem/3,key/3,length/2]). +-export([init/0,setItem/4,getItem/3,removeItem/3,key/3,clear/2,length/2]). -include("ggs_db.hrl"). %%----------------------------------------------------- @@ -71,3 +71,14 @@ key(Db,Ns,Position) -> end, {atomic, Ret} = mnesia:transaction(Fun), Ret. + + +clear(Db,Ns) -> + Fun = fun() -> + Keys = mnesia:all_keys(data), + Rest = lists:filter(fun({A,B,_}) -> ((A==Db) and (B==Ns)) end, Keys), + lists:map(fun({A,B,C}) -> removeItem(A,B,C) end, Rest) + end, + {atomic, Ret} = mnesia:transaction(Fun), + Ret. + diff --git a/mnesia/ggs_db_test.erl b/mnesia/ggs_db_test.erl index a1a2ff1..ea6e12e 100644 --- a/mnesia/ggs_db_test.erl +++ b/mnesia/ggs_db_test.erl @@ -25,15 +25,14 @@ length_test() -> removeItem_test() -> ggs_db:removeItem(1,1,4), ?assertNot(ggs_db:getItem(1,1,4) =:= {atomic,"114"}). - %mnesia:stop(). key_test() -> - ?assert(ggs_db:key(1,1,2) =:= {1,1,3}), + ?assert(ggs_db:key(1,1,2) =:= {1,1,3}). + +clear_test() -> + ggs_db:clear(1,1), + ?assert(ggs_db:length(1,1) =:= 0), mnesia:stop(). -%cleanup(Val) -> -% mnesia:stop(). - - %tests() -> % ggs_db_test().