Subversion Repositories SmartDukaan

Rev

Rev 30 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
%%
2
%% Licensed to the Apache Software Foundation (ASF) under one
3
%% or more contributor license agreements. See the NOTICE file
4
%% distributed with this work for additional information
5
%% regarding copyright ownership. The ASF licenses this file
6
%% to you under the Apache License, Version 2.0 (the
7
%% "License"); you may not use this file except in compliance
8
%% with the License. You may obtain a copy of the License at
9
%%
10
%%   http://www.apache.org/licenses/LICENSE-2.0
11
%%
12
%% Unless required by applicable law or agreed to in writing,
13
%% software distributed under the License is distributed on an
14
%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
%% KIND, either express or implied. See the License for the
16
%% specific language governing permissions and limitations
17
%% under the License.
18
%%
19
 
20
-module(test_membuffer).
21
-export([t/0]).
22
 
23
-include("thriftTest_types.hrl").
24
 
25
test_data() ->
26
    #xtruct{string_thing = <<"foobar">>,
27
	    byte_thing = 123,
28
	    i32_thing = 1234567,
29
	    i64_thing = 12345678900}.
30
 
31
t1() ->
32
    {ok, Transport} = thrift_memory_buffer:new(),
33
    {ok, Protocol} = thrift_binary_protocol:new(Transport),
34
    TestData = test_data(),
35
    ok = thrift_protocol:write(Protocol,
36
			       {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
37
				TestData}),
38
    {ok, Result} = thrift_protocol:read(Protocol,
39
					{struct, element(2, thriftTest_types:struct_info('xtruct'))},
40
					'xtruct'),
41
 
42
    Result = TestData.
43
 
44
 
45
t2() ->
46
    {ok, Transport} = thrift_memory_buffer:new(),
47
    {ok, Protocol} = thrift_binary_protocol:new(Transport),
48
    TestData = test_data(),
49
    ok = thrift_protocol:write(Protocol,
50
			       {{struct, element(2, thriftTest_types:struct_info('xtruct'))},
51
				TestData}),
52
    {ok, Result} = thrift_protocol:read(Protocol,
53
					{struct, element(2, thriftTest_types:struct_info('xtruct3'))},
54
					'xtruct3'),
55
 
56
    Result = #xtruct3{string_thing = TestData#xtruct.string_thing,
57
                      changed = undefined,
58
                      i32_thing = TestData#xtruct.i32_thing,
59
                      i64_thing = TestData#xtruct.i64_thing}.
60
 
61
 
62
t3() ->
63
    {ok, Transport} = thrift_memory_buffer:new(),
64
    {ok, Protocol} = thrift_binary_protocol:new(Transport),
65
    TestData = #bools{im_true = true, im_false = false},
66
    ok = thrift_protocol:write(Protocol,
67
			       {{struct, element(2, thriftTest_types:struct_info('bools'))},
68
				TestData}),
69
    {ok, Result} = thrift_protocol:read(Protocol,
70
					{struct, element(2, thriftTest_types:struct_info('bools'))},
71
					'bools'),
72
 
73
    true = TestData#bools.im_true  =:= Result#bools.im_true,
74
    true = TestData#bools.im_false =:= Result#bools.im_false.
75
 
76
 
77
t() ->
78
    t1(),
79
    t2(),
80
    t3().
81