Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F120823376
eimap_uidset_tests.erl
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
4 KB
Referenced Files
None
Subscribers
None
eimap_uidset_tests.erl
View Options
%% Copyright 2014 Kolab Systems AG (http://www.kolabsys.com)
%%
%% Aaron Seigo (Kolab Systems) <seigo a kolabsys.com>
%%
%% This program is free software: you can redistribute it and/or modify
%% it under the terms of the GNU General Public License as published by
%% the Free Software Foundation, either version 3 of the License, or
%% (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful,
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%% GNU General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program. If not, see <http://www.gnu.org/licenses/>.
-
module
(
eimap_uidset_tests
).
-
include_lib
(
"eunit/include/eunit.hrl"
).
% c("test/eimap_uidset_tests.erl"). eunit:test(eimap_uidset).
new_test_
()
->
Data
=
[
% input, output
{
[
4
],
<<
"4"
>>
},
{
[
1
,
2
,
3
,
4
],
<<
"1,2,3,4"
>>
},
{
[
-
1
,
1
,
2
,
3
,
4
],
<<
"1,2,3,4"
>>
},
{
[
1
,
{
100
,
10
},
2
,
3
,
4
],
<<
"1,10:100,2,3,4"
>>
},
{
[
1
,
{
10
,
100
},
2
,
3
,
4
],
<<
"1,10:100,2,3,4"
>>
},
{
[
1
,
{
-
10
,
100
},
2
,
3
,
4
],
<<
"1,2,3,4"
>>
},
{
[
1
,
{
-
100
,
10
},
2
,
3
,
4
],
<<
"1,2,3,4"
>>
},
{
[
1
,
{
-
10
,
100
},
2
,
3
,
4
],
<<
"1,2,3,4"
>>
},
{
[
1
,
{
"alpha"
,
100
},
<<
"random_binary"
>>
,
some_atom
,
2
,
3
,
4
],
<<
"1,2,3,4"
>>
},
{
<<
"1,2,3,4"
>>
,
<<>>
},
{
other
,
<<>>
},
{
[],
<<>>
}
],
lists
:
foldl
(
fun
({
List
,
Binary
},
Acc
)
->
[
?
_
assertEqual
(
Binary
,
eimap_uidset
:
uid_list_to_binary
(
List
))|
Acc
]
end
,
[],
Data
).
single_value_test_
()
->
[
?
_
assertEqual
([
1
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,"
>>
))),
?
_
assertEqual
([
1
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1"
>>
))),
?
_
assertEqual
([
20
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"20"
>>
))),
?
_
assertEqual
([
147
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"147"
>>
)))
].
multiple_single_value_test_
()
->
[
?
_
assertEqual
([
1
,
2
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,2"
>>
)))
].
range_test_
()
->
[
?
_
assertEqual
([
1
,
2
,
3
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1:3"
>>
))),
?
_
assertEqual
([
3
,
2
,
1
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"3:1"
>>
))),
?
_
assertEqual
([
1
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1:1"
>>
)))
].
multiple_range_test_
()
->
[
?
_
assertEqual
([
1
,
2
,
3
,
10
,
11
,
12
,
13
,
14
,
15
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1:3,10:15"
>>
)))
].
mix_single_and_range_test_
()
->
[
?
_
assertEqual
([
1
,
3
,
4
,
5
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,3:5"
>>
))),
?
_
assertEqual
([
1
,
3
,
4
,
5
,
10
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,3:5,10"
>>
))),
?
_
assertEqual
([
1
,
3
,
4
,
5
,
10
,
20
,
21
,
22
,
23
,
30
],
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,3:5,10,20:23,30"
>>
)))
].
mix_single_and_range_with_whitespace_test_
()
->
[
?
_
assertEqual
(
badarg
,
eimap_uidset
:
parse
(
<<
"1, 3:5"
>>
)),
?
_
assertEqual
(
badarg
,
eimap_uidset
:
parse
(
<<
"1,3:5 ,10"
>>
)),
?
_
assertEqual
(
badarg
,
eimap_uidset
:
parse
(
<<
"1,3 :5,10,20: 23,30"
>>
))
].
bad_uidsets_test_
()
->
[
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
""
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"-1,3:5"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"alpha"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,a,3:5"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1,3:5,a"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1;2"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1, 2"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"1:3:5"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"-11,3:5"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"11,-3:5"
>>
))),
?
_
assertEqual
(
badarg
,
iterate_uidset
(
eimap_uidset
:
parse
(
<<
"11,3:-5"
>>
)))
].
iterate_uidset
(
badarg
)
->
badarg
;
iterate_uidset
(
UidSet
)
->
%%io:fwrite("we are going to iterate over ~p~n", [UidSet]),
lists
:
reverse
(
iterate_uidset
(
eimap_uidset
:
next_uid
(
UidSet
),
[])).
iterate_uidset
({
none
,
_
UidSet
},
Acc
)
->
Acc
;
iterate_uidset
({
Uid
,
UidSet
},
Acc
)
->
iterate_uidset
(
eimap_uidset
:
next_uid
(
UidSet
),
[
Uid
|
Acc
]).
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 24, 10:05 AM (1 w, 2 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18768231
Default Alt Text
eimap_uidset_tests.erl (4 KB)
Attached To
Mode
rEI eimap
Attached
Detach File
Event Timeline