Fixed getItem in ggs_db
This commit is contained in:
parent
21b2b9aeda
commit
0aac25cd42
2 changed files with 36 additions and 31 deletions
|
@ -41,7 +41,6 @@ removeItem(GameToken,Ns,Key) ->
|
||||||
end,
|
end,
|
||||||
mnesia:transaction(Fun).
|
mnesia:transaction(Fun).
|
||||||
|
|
||||||
|
|
||||||
clear(GameToken,Ns) ->
|
clear(GameToken,Ns) ->
|
||||||
Fun = fun() ->
|
Fun = fun() ->
|
||||||
Keys = mnesia:all_keys(data),
|
Keys = mnesia:all_keys(data),
|
||||||
|
@ -61,14 +60,18 @@ clear(GameToken) ->
|
||||||
Ret.
|
Ret.
|
||||||
|
|
||||||
%%-----------------------------------------------------
|
%%-----------------------------------------------------
|
||||||
%% Querries
|
%% Queries
|
||||||
%%-----------------------------------------------------
|
%%-----------------------------------------------------
|
||||||
getItem(GameToken,Ns,Key) ->
|
getItem(GameToken,Ns,Key) ->
|
||||||
Fun = fun() ->
|
Fun = fun() ->
|
||||||
mnesia:read(data, {GameToken,Ns,Key})
|
mnesia:read(data, {GameToken,Ns,Key})
|
||||||
end,
|
end,
|
||||||
{atomic, [Ret]} = mnesia:transaction(Fun),
|
case mnesia:transaction(Fun) of
|
||||||
Ret#data.value.
|
{atomic, []} ->
|
||||||
|
{error};
|
||||||
|
{atomic, [Ret]} ->
|
||||||
|
Ret#data.value
|
||||||
|
end.
|
||||||
|
|
||||||
length(GameToken,Ns) ->
|
length(GameToken,Ns) ->
|
||||||
Fun = fun() ->
|
Fun = fun() ->
|
||||||
|
@ -86,6 +89,3 @@ key(GameToken,Ns,Position) ->
|
||||||
end,
|
end,
|
||||||
{atomic, Ret} = mnesia:transaction(Fun),
|
{atomic, Ret} = mnesia:transaction(Fun),
|
||||||
Ret.
|
Ret.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,34 +9,39 @@
|
||||||
|
|
||||||
|
|
||||||
%Key should be a tuple of two elements
|
%Key should be a tuple of two elements
|
||||||
getItem_setItem_test() ->
|
getItem_setItem_test() ->
|
||||||
ggs_db:init(),
|
ggs_db:init(),
|
||||||
ggs_db:setItem("dbname","nsname","keyname1","Hello"),
|
ggs_db:setItem("dbname","nsname","keyname1","Hello"),
|
||||||
ggs_db:setItem("dbname","nsname","keyname2","Hello2"),
|
ggs_db:setItem("dbname","nsname","keyname2","Hello2"),
|
||||||
ggs_db:setItem("dbname2","nsname","keyname1","Hello3"),
|
ggs_db:setItem("dbname2","nsname","keyname1","Hello3"),
|
||||||
ggs_db:setItem("dbname2","nsname","keyname1","Hello4"),
|
ggs_db:setItem("dbname2","nsname","keyname1","Hello4"),
|
||||||
ggs_db:setItem("dbname3","nsname","keyname1","Hello5"),
|
ggs_db:setItem("dbname3","nsname","keyname1","Hello5"),
|
||||||
"Hello" = ggs_db:getItem("dbname","nsname","keyname1").
|
"Hello" = ggs_db:getItem("dbname","nsname","keyname1").
|
||||||
|
|
||||||
|
%Test the length function of our database
|
||||||
length_test() ->
|
length_test() ->
|
||||||
ggs_db:setItem(1,1,2,"112"),
|
ggs_db:setItem(1,1,2,"112"),
|
||||||
ggs_db:setItem(1,2,2,"122"),
|
ggs_db:setItem(1,2,2,"122"),
|
||||||
ggs_db:setItem(1,1,3,"113"),
|
ggs_db:setItem(1,1,3,"113"),
|
||||||
ggs_db:setItem(1,1,4,"114"),
|
ggs_db:setItem(1,1,4,"114"),
|
||||||
?assertEqual(ggs_db:length(1,1), 3).
|
?assertEqual(ggs_db:length(1,1), 3).
|
||||||
|
|
||||||
|
%Test if we can remove correctly from the database
|
||||||
removeItem_test() ->
|
removeItem_test() ->
|
||||||
ggs_db:removeItem(1,1,4),
|
ggs_db:removeItem(1,1,4),
|
||||||
?assertNot(ggs_db:getItem(1,1,4) =:= "114").
|
?assertNot(ggs_db:getItem(1,1,4) =:= "114").
|
||||||
|
|
||||||
|
%Test the key function
|
||||||
key_test() ->
|
key_test() ->
|
||||||
?assert(ggs_db:key(1,1,2) =:= {1,1,3}).
|
?assert(ggs_db:key(1,1,2) =:= {1,1,2}).
|
||||||
|
|
||||||
|
%Test the clear function(for gametoken and ns)
|
||||||
clear_test() ->
|
clear_test() ->
|
||||||
ggs_db:clear(1,1),
|
ggs_db:clear(1,1),
|
||||||
?assert(ggs_db:length(1,1) =:= 0).
|
?assert(ggs_db:length(1,1) =:= 0).
|
||||||
|
|
||||||
|
%Test the clear function(gametoken)
|
||||||
clear_GameToken_test() ->
|
clear_GameToken_test() ->
|
||||||
ggs_db:clear(1),
|
ggs_db:clear(1),
|
||||||
?assert((ggs_db:length(1,1) + ggs_db:length(1,2)) =:= 0),
|
?assert((ggs_db:length(1,1) + ggs_db:length(1,2)) =:= 0),
|
||||||
ggs_db:stop().
|
ggs_db:stop().
|
||||||
|
|
Reference in a new issue