Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
caosdb-cpplib
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
caosdb-cpplib
Commits
f38dbd12
Verified
Commit
f38dbd12
authored
3 years ago
by
Timm Fitschen
Browse files
Options
Downloads
Patches
Plain Diff
API: remove UniqueResult, lower-case at, size for ResultSet
parent
0f96286c
No related branches found
Branches containing commit
No related tags found
Tags containing commit
3 merge requests
!11
F files
,
!10
API: remove UniqueResult, lower-case at, size for ResultSet
,
!9
Draft: API: remove UniqueResult, lower-case at, size for ResultSet
Pipeline
#11852
failed
3 years ago
Stage: info
Stage: setup
Stage: test
Stage: deploy
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
include/caosdb/transaction.h
+8
-35
8 additions, 35 deletions
include/caosdb/transaction.h
proto
+1
-1
1 addition, 1 deletion
proto
src/caosdb/transaction.cpp
+89
-66
89 additions, 66 deletions
src/caosdb/transaction.cpp
test/test_transaction.cpp
+29
-31
29 additions, 31 deletions
test/test_transaction.cpp
with
127 additions
and
133 deletions
include/caosdb/transaction.h
+
8
−
35
View file @
f38dbd12
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
#include
<iterator>
#include
<iterator>
// IWYU pragma: no_include <ext/alloc_traits.h>
// IWYU pragma: no_include <ext/alloc_traits.h>
#include
<memory>
// for shared_ptr, unique_ptr
#include
<memory>
// for shared_ptr, unique_ptr
#include
<stdexcept>
#include
<string>
// for string
#include
<string>
// for string
#include
<vector>
// for vector
#include
<vector>
// for vector
...
@@ -179,8 +178,9 @@ class ResultSet {
...
@@ -179,8 +178,9 @@ class ResultSet {
public:
public:
virtual
~
ResultSet
()
=
default
;
virtual
~
ResultSet
()
=
default
;
[[
nodiscard
]]
virtual
auto
Size
()
const
noexcept
->
int
=
0
;
[[
nodiscard
]]
virtual
auto
size
()
const
noexcept
->
int
=
0
;
[[
nodiscard
]]
virtual
auto
At
(
const
int
index
)
const
->
const
Entity
&
=
0
;
[[
nodiscard
]]
virtual
auto
at
(
const
int
index
)
const
->
const
Entity
&
=
0
;
[[
nodiscard
]]
virtual
auto
mutable_at
(
int
index
)
const
->
Entity
*
=
0
;
auto
begin
()
const
->
iterator
;
auto
begin
()
const
->
iterator
;
auto
end
()
const
->
iterator
;
auto
end
()
const
->
iterator
;
...
@@ -201,49 +201,22 @@ private:
...
@@ -201,49 +201,22 @@ private:
/**
/**
* Container with results of a transaction.
* Container with results of a transaction.
*
* In contrast to UniqueResult, this one can also hold multiple entities or zero
* entities.
*/
*/
class
MultiResultSet
:
public
ResultSet
{
class
MultiResultSet
:
public
ResultSet
{
public:
public:
~
MultiResultSet
()
=
default
;
~
MultiResultSet
()
=
default
;
explicit
MultiResultSet
(
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
result_set
);
explicit
MultiResultSet
(
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
result_set
);
[[
nodiscard
]]
inline
auto
S
ize
()
const
noexcept
->
int
override
{
[[
nodiscard
]]
inline
auto
s
ize
()
const
noexcept
->
int
override
{
return
this
->
entities
.
size
();
return
this
->
entities
.
size
();
}
}
[[
nodiscard
]]
inline
auto
A
t
(
const
int
index
)
const
[[
nodiscard
]]
inline
auto
a
t
(
const
int
index
)
const
->
const
Entity
&
override
{
->
const
Entity
&
override
{
return
*
(
this
->
entities
.
at
(
index
));
return
*
(
this
->
entities
.
at
(
index
));
}
}
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
entities
;
[[
nodiscard
]]
inline
auto
mutable_at
(
int
index
)
const
->
Entity
*
override
{
};
return
this
->
entities
.
at
(
index
).
get
();
/**
* Container with the single result of a transaction.
*
* In contrast to MultiResultSet, this one guarantees to hold exactly one
* entity.
*/
class
UniqueResult
:
public
ResultSet
{
public:
~
UniqueResult
()
=
default
;
explicit
inline
UniqueResult
(
ProtoEntity
*
protoEntity
)
:
entity
(
new
Entity
(
protoEntity
)){};
explicit
inline
UniqueResult
(
IdResponse
*
idResponse
)
:
entity
(
new
Entity
(
idResponse
)){};
[[
nodiscard
]]
auto
GetEntity
()
const
->
const
Entity
&
;
[[
nodiscard
]]
inline
auto
Size
()
const
noexcept
->
int
override
{
return
1
;
}
[[
nodiscard
]]
inline
auto
At
(
const
int
index
)
const
->
const
Entity
&
override
{
if
(
index
!=
0
)
{
throw
std
::
out_of_range
(
"Index out of range. Length is 1."
);
}
return
*
(
this
->
entity
);
}
}
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
entities
;
private
:
std
::
unique_ptr
<
Entity
>
entity
;
};
};
/**
/**
...
...
This diff is collapsed.
Click to expand it.
proto
@
45d120f7
Compare
36d7956b
...
45d120f7
Subproject commit
36d
79
5
6b
6eca506fb87096d8d50b6f4b820778b8
Subproject commit
45d120f78f1
79
8
6b
a67c10b6a4a130e7fa60b34c
This diff is collapsed.
Click to expand it.
src/caosdb/transaction.cpp
+
89
−
66
View file @
f38dbd12
...
@@ -107,7 +107,7 @@ ResultSet::iterator::iterator(const ResultSet *result_set_param, int index)
...
@@ -107,7 +107,7 @@ ResultSet::iterator::iterator(const ResultSet *result_set_param, int index)
:
current_index
(
index
),
result_set
(
result_set_param
)
{}
:
current_index
(
index
),
result_set
(
result_set_param
)
{}
auto
ResultSet
::
iterator
::
operator
*
()
const
->
const
Entity
&
{
auto
ResultSet
::
iterator
::
operator
*
()
const
->
const
Entity
&
{
return
this
->
result_set
->
A
t
(
current_index
);
return
this
->
result_set
->
a
t
(
current_index
);
}
}
auto
ResultSet
::
iterator
::
operator
++
()
->
ResultSet
::
iterator
&
{
auto
ResultSet
::
iterator
::
operator
++
()
->
ResultSet
::
iterator
&
{
...
@@ -130,17 +130,12 @@ auto ResultSet::begin() const -> ResultSet::iterator {
...
@@ -130,17 +130,12 @@ auto ResultSet::begin() const -> ResultSet::iterator {
}
}
auto
ResultSet
::
end
()
const
->
ResultSet
::
iterator
{
auto
ResultSet
::
end
()
const
->
ResultSet
::
iterator
{
return
ResultSet
::
iterator
(
this
,
S
ize
());
return
ResultSet
::
iterator
(
this
,
s
ize
());
}
}
MultiResultSet
::
MultiResultSet
(
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
result_set
)
MultiResultSet
::
MultiResultSet
(
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
result_set
)
:
entities
(
std
::
move
(
result_set
))
{}
:
entities
(
std
::
move
(
result_set
))
{}
[[
nodiscard
]]
auto
UniqueResult
::
GetEntity
()
const
->
const
Entity
&
{
const
Entity
*
result
=
this
->
entity
.
get
();
return
*
result
;
}
Transaction
::
Transaction
(
Transaction
::
Transaction
(
std
::
shared_ptr
<
EntityTransactionService
::
Stub
>
service_stub
)
std
::
shared_ptr
<
EntityTransactionService
::
Stub
>
service_stub
)
:
request
(
google
::
protobuf
::
Arena
::
CreateMessage
<
MultiTransactionRequest
>
(
:
request
(
google
::
protobuf
::
Arena
::
CreateMessage
<
MultiTransactionRequest
>
(
...
@@ -279,86 +274,114 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode {
...
@@ -279,86 +274,114 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode {
}
}
auto
Transaction
::
WaitForIt
()
const
noexcept
->
TransactionStatus
{
auto
Transaction
::
WaitForIt
()
const
noexcept
->
TransactionStatus
{
if
(
this
->
response
->
responses_size
()
==
1
)
{
// if (this->response->responses_size() == 1) {
auto
*
responses
=
this
->
response
->
mutable_responses
(
0
);
// auto *responses = this->response->mutable_responses(0);
switch
(
responses
->
wrapped_response_case
())
{
// switch (responses->wrapped_response_case()) {
// case WrappedResponseCase::kRetrieveResponse: {
// auto *retrieve_response = responses->mutable_retrieve_response();
// switch (retrieve_response->query_response_case()) {
// case QueryResponseCase::kEntity: {
// auto *entity = retrieve_response->release_entity();
// if (!entity->errors().empty()) {
// this->status = TransactionStatus::TRANSACTION_ERROR(
//"The request returned with errors.");
//}
// this->result_set = std::make_unique<UniqueResult>(entity);
//} break;
// case QueryResponseCase::kSelectResult: {
//// TODO(tf) Select queries
//} break;
// case QueryResponseCase::kCountResult: {
// this->query_count = retrieve_response->count_result();
// std::vector<std::unique_ptr<Entity>> entities;
// this->result_set =
// std::make_unique<MultiResultSet>(std::move(entities));
//} break;
// default:
//// TODO(tf) Error
// break;
//}
//} break;
// case WrappedResponseCase::kUpdateResponse: {
// auto *updatedIdResponse = responses->mutable_update_response();
// if (!updatedIdResponse->entity_errors().empty()) {
// this->status = TransactionStatus::TRANSACTION_ERROR(
//"The request returned with errors.");
//}
// this->result_set = std::make_unique<UniqueResult>(updatedIdResponse);
//} break;
// case WrappedResponseCase::kInsertResponse: {
// auto *insertedIdResponse = responses->mutable_insert_response();
// if (!insertedIdResponse->entity_errors().empty()) {
// this->status = TransactionStatus::TRANSACTION_ERROR(
//"The request returned with errors.");
//}
// this->result_set = std::make_unique<UniqueResult>(insertedIdResponse);
//} break;
// default:
//// TODO(tf) Error and Update
// break;
//}
//} else {
auto
*
responses
=
this
->
response
->
mutable_responses
();
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
entities
;
for
(
auto
sub_response
:
*
responses
)
{
std
::
unique_ptr
<
Entity
>
result
;
switch
(
sub_response
.
wrapped_response_case
())
{
case
WrappedResponseCase
::
kRetrieveResponse
:
{
case
WrappedResponseCase
::
kRetrieveResponse
:
{
auto
*
retrieve_response
=
responses
->
mutable_retrieve_response
();
auto
*
retrieve_response
=
sub_response
.
mutable_retrieve_response
();
switch
(
retrieve_response
->
query_response_case
())
{
switch
(
retrieve_response
->
query_response_case
())
{
case
QueryResponseCase
::
kEntity
:
{
case
QueryResponseCase
::
kEntity
:
{
auto
*
entity
=
retrieve_response
->
release_entity
();
auto
*
retrieve_entity_response
=
retrieve_response
->
release_entity
();
if
(
!
entity
->
errors
().
empty
())
{
result
=
std
::
make_unique
<
Entity
>
(
retrieve_entity_response
);
this
->
status
=
TransactionStatus
::
TRANSACTION_ERROR
(
"The request returned with errors."
);
}
this
->
result_set
=
std
::
make_unique
<
UniqueResult
>
(
entity
);
}
break
;
}
break
;
case
QueryResponseCase
::
kSelectResult
:
{
case
QueryResponseCase
::
kSelectResult
:
{
// TODO(tf) Select queries
// TODO(tf) Select queries
}
break
;
}
break
;
case
QueryResponseCase
::
kCountResult
:
{
case
QueryResponseCase
::
kCountResult
:
{
this
->
query_count
=
retrieve_response
->
count_result
();
this
->
query_count
=
retrieve_response
->
count_result
();
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
entities
;
this
->
result_set
=
std
::
make_unique
<
MultiResultSet
>
(
std
::
move
(
entities
));
}
break
;
}
break
;
default
:
default
:
// TODO(tf) Error
// TODO(tf) Error
break
;
break
;
}
}
}
break
;
case
WrappedResponseCase
::
kUpdateResponse
:
{
break
;
auto
*
updatedIdResponse
=
responses
->
mutable_update_response
();
}
if
(
!
updatedIdResponse
->
entity_errors
().
empty
())
{
this
->
status
=
TransactionStatus
::
TRANSACTION_ERROR
(
// case WrappedResponseCase::kRetrieveResponse:
"The request returned with errors."
);
// auto *retrieve_entity_response =
}
// sub_response.mutable_retrieve_response()->release_entity(); result =
this
->
result_set
=
std
::
make_unique
<
UniqueResult
>
(
updatedIdResponse
);
// std::make_unique<Entity>(retrieve_entity_response); break;
}
break
;
case
WrappedResponseCase
::
kInsertResponse
:
{
case
WrappedResponseCase
::
kInsertResponse
:
{
auto
*
insertedIdResponse
=
responses
->
mutable_insert_response
();
auto
*
inserted_id_response
=
sub_response
.
release_insert_response
();
if
(
!
insertedIdResponse
->
entity_errors
().
empty
())
{
result
=
std
::
make_unique
<
Entity
>
(
inserted_id_response
);
this
->
status
=
TransactionStatus
::
TRANSACTION_ERROR
(
break
;
"The request returned with errors."
);
}
}
this
->
result_set
=
std
::
make_unique
<
UniqueResult
>
(
insertedIdResponse
);
}
break
;
case
WrappedResponseCase
::
kDeleteResponse
:
{
case
WrappedResponseCase
::
kDeleteResponse
:
{
auto
*
deletedIdResponse
=
responses
->
mutable_delete_response
();
auto
*
deleted_id_response
=
sub_response
.
release_delete_response
();
if
(
!
deletedIdResponse
->
entity_errors
().
empty
())
{
result
=
std
::
make_unique
<
Entity
>
(
deleted_id_response
);
this
->
status
=
TransactionStatus
::
TRANSACTION_ERROR
(
break
;
"The request returned with errors."
);
}
}
case
WrappedResponseCase
::
kUpdateResponse
:
{
this
->
result_set
=
std
::
make_unique
<
UniqueResult
>
(
deletedIdResponse
);
auto
*
updated_id_response
=
sub_response
.
release_update_response
();
}
break
;
result
=
std
::
make_unique
<
Entity
>
(
updated_id_response
);
break
;
}
default
:
default
:
// TODO(tf) Error
and Update
// TODO(tf) Error
break
;
break
;
}
}
}
else
{
if
(
result
->
HasErrors
())
{
auto
*
responses
=
this
->
response
->
mutable_responses
();
this
->
status
=
TransactionStatus
::
TRANSACTION_ERROR
(
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
entities
;
"The request terminated with errors."
);
for
(
auto
sub_response
:
*
responses
)
{
switch
(
sub_response
.
wrapped_response_case
())
{
case
WrappedResponseCase
::
kRetrieveResponse
:
entities
.
push_back
(
std
::
make_unique
<
Entity
>
(
sub_response
.
mutable_retrieve_response
()
->
release_entity
()));
break
;
case
WrappedResponseCase
::
kInsertResponse
:
entities
.
push_back
(
std
::
make_unique
<
Entity
>
(
sub_response
.
release_insert_response
()));
break
;
case
WrappedResponseCase
::
kDeleteResponse
:
entities
.
push_back
(
std
::
make_unique
<
Entity
>
(
sub_response
.
release_insert_response
()));
break
;
default:
// TODO(tf) Updates
break
;
}
}
}
this
->
result_set
=
std
::
make_unique
<
MultiResultSet
>
(
std
::
move
(
entities
));
entities
.
push_back
(
std
::
move
(
result
));
}
}
this
->
result_set
=
std
::
make_unique
<
MultiResultSet
>
(
std
::
move
(
entities
));
//}
return
this
->
status
;
return
this
->
status
;
}
}
...
...
This diff is collapsed.
Click to expand it.
test/test_transaction.cpp
+
29
−
31
View file @
f38dbd12
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
#include
"caosdb/entity/v1alpha1/main.pb.h"
// for Entity
#include
"caosdb/entity/v1alpha1/main.pb.h"
// for Entity
#include
"caosdb/exceptions.h"
// for ConnectionError
#include
"caosdb/exceptions.h"
// for ConnectionError
#include
"caosdb/status_code.h"
#include
"caosdb/status_code.h"
#include
"caosdb/transaction.h"
// for Transaction
, UniqueResult
#include
"caosdb/transaction.h"
// for Transaction
#include
"caosdb/transaction_status.h"
// for ConnectionError
#include
"caosdb/transaction_status.h"
// for ConnectionError
#include
"caosdb_test_utility.h"
// for EXPECT_THROW_MESSAGE
#include
"caosdb_test_utility.h"
// for EXPECT_THROW_MESSAGE
#include
"gtest/gtest-message.h"
// for Message
#include
"gtest/gtest-message.h"
// for Message
...
@@ -38,10 +38,31 @@ namespace caosdb::transaction {
...
@@ -38,10 +38,31 @@ namespace caosdb::transaction {
using
caosdb
::
configuration
::
InsecureConnectionConfiguration
;
using
caosdb
::
configuration
::
InsecureConnectionConfiguration
;
using
caosdb
::
connection
::
Connection
;
using
caosdb
::
connection
::
Connection
;
using
caosdb
::
exceptions
::
ConnectionError
;
using
caosdb
::
exceptions
::
ConnectionError
;
using
caosdb
::
transaction
::
UniqueResult
;
using
caosdb
::
entity
::
Entity
;
using
ProtoEntity
=
caosdb
::
entity
::
v1alpha1
::
Entity
;
using
ProtoEntity
=
caosdb
::
entity
::
v1alpha1
::
Entity
;
using
caosdb
::
entity
::
v1alpha1
::
RetrieveResponse
;
using
caosdb
::
entity
::
v1alpha1
::
RetrieveResponse
;
TEST
(
test_transaction
,
test_multi_result_set
)
{
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
entities
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
entities
.
push_back
(
std
::
make_unique
<
Entity
>
());
entities
[
i
].
SetName
(
"E"
+
std
::
to_string
(
i
));
}
MultiResultSet
result_set
(
std
::
move
(
entities
));
EXPECT_EQ
(
result_set
.
size
(),
5
);
EXPECT_EQ
(
result_set
.
mutable_at
(
3
)
->
GetName
(),
"E2"
);
EXPECT_EQ
(
result_set
.
at
(
4
)
->
GetName
(),
"E3"
);
EXPECT_EQ
(
result_set
.
at
(
4
)
->
GetName
(),
"E3"
);
EXPECT_THROW
(
result_set
.
at
(
15
),
std
::
out_of_range
);
int
counter
=
0
;
for
(
const
auto
&
entity
:
result_set
)
{
EXPECT_EQ
(
entity
.
GetName
(),
"E"
+
std
::
to_string
(
counter
++
));
}
EXPECT_EQ
(
counter
,
5
);
}
TEST
(
test_transaction
,
create_transaction
)
{
TEST
(
test_transaction
,
create_transaction
)
{
const
auto
*
host
=
"localhost"
;
const
auto
*
host
=
"localhost"
;
auto
configuration
=
InsecureConnectionConfiguration
(
host
,
8000
);
auto
configuration
=
InsecureConnectionConfiguration
(
host
,
8000
);
...
@@ -55,18 +76,6 @@ TEST(test_transaction, create_transaction) {
...
@@ -55,18 +76,6 @@ TEST(test_transaction, create_transaction) {
"connection to the server could not be established."
);
"connection to the server could not be established."
);
}
}
TEST
(
test_transaction
,
unique_result
)
{
auto
*
entity
=
new
ProtoEntity
();
entity
->
set_id
(
"test"
);
UniqueResult
result
(
entity
);
EXPECT_EQ
(
"test"
,
result
.
GetEntity
().
GetId
());
// DON'T DELETE! The caosdb::entity::Entity takes care of that
// Try it yourself:
// delete entity;
}
TEST
(
test_transaction
,
test_unavailable
)
{
TEST
(
test_transaction
,
test_unavailable
)
{
const
auto
*
host
=
"localhost"
;
const
auto
*
host
=
"localhost"
;
auto
configuration
=
InsecureConnectionConfiguration
(
host
,
8000
);
auto
configuration
=
InsecureConnectionConfiguration
(
host
,
8000
);
...
@@ -96,7 +105,7 @@ TEST(test_transaction, test_retrieve_by_ids) {
...
@@ -96,7 +105,7 @@ TEST(test_transaction, test_retrieve_by_ids) {
TEST
(
test_transaction
,
test_multi_result_set_empty
)
{
TEST
(
test_transaction
,
test_multi_result_set_empty
)
{
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
empty
;
std
::
vector
<
std
::
unique_ptr
<
Entity
>>
empty
;
MultiResultSet
rs
(
std
::
move
(
empty
));
MultiResultSet
rs
(
std
::
move
(
empty
));
EXPECT_EQ
(
rs
.
S
ize
(),
0
);
EXPECT_EQ
(
rs
.
s
ize
(),
0
);
}
}
TEST
(
test_transaction
,
test_multi_result_iterator
)
{
TEST
(
test_transaction
,
test_multi_result_iterator
)
{
...
@@ -106,19 +115,8 @@ TEST(test_transaction, test_multi_result_iterator) {
...
@@ -106,19 +115,8 @@ TEST(test_transaction, test_multi_result_iterator) {
one_elem
.
push_back
(
std
::
make_unique
<
Entity
>
(
response
.
release_entity
()));
one_elem
.
push_back
(
std
::
make_unique
<
Entity
>
(
response
.
release_entity
()));
MultiResultSet
rs
(
std
::
move
(
one_elem
));
MultiResultSet
rs
(
std
::
move
(
one_elem
));
EXPECT_EQ
(
rs
.
Size
(),
1
);
EXPECT_EQ
(
rs
.
size
(),
1
);
for
(
const
Entity
&
entity
:
rs
)
{
EXPECT_EQ
(
entity
.
GetId
(),
"100"
);
}
}
TEST
(
test_transaction
,
test_unique_result_iterator
)
{
caosdb
::
entity
::
v1alpha1
::
Entity
response
;
response
.
set_id
(
"100"
);
UniqueResult
rs
(
&
response
);
EXPECT_EQ
(
rs
.
Size
(),
1
);
for
(
const
Entity
&
entity
:
rs
)
{
for
(
const
Entity
&
entity
:
rs
)
{
EXPECT_EQ
(
entity
.
GetId
(),
"100"
);
EXPECT_EQ
(
entity
.
GetId
(),
"100"
);
}
}
...
@@ -131,8 +129,8 @@ TEST(test_transaction, test_multi_result_set_one) {
...
@@ -131,8 +129,8 @@ TEST(test_transaction, test_multi_result_set_one) {
one_elem
.
push_back
(
std
::
make_unique
<
Entity
>
(
response
.
release_entity
()));
one_elem
.
push_back
(
std
::
make_unique
<
Entity
>
(
response
.
release_entity
()));
MultiResultSet
rs
(
std
::
move
(
one_elem
));
MultiResultSet
rs
(
std
::
move
(
one_elem
));
EXPECT_EQ
(
rs
.
S
ize
(),
1
);
EXPECT_EQ
(
rs
.
s
ize
(),
1
);
EXPECT_EQ
(
rs
.
A
t
(
0
).
GetId
(),
"100"
);
EXPECT_EQ
(
rs
.
a
t
(
0
).
GetId
(),
"100"
);
}
}
TEST
(
test_transaction
,
test_multi_result_set_three
)
{
TEST
(
test_transaction
,
test_multi_result_set_three
)
{
...
@@ -160,8 +158,8 @@ TEST(test_transaction, test_multi_result_set_three) {
...
@@ -160,8 +158,8 @@ TEST(test_transaction, test_multi_result_set_three) {
}
}
MultiResultSet
rs
(
std
::
move
(
three_elem
));
MultiResultSet
rs
(
std
::
move
(
three_elem
));
EXPECT_EQ
(
rs
.
S
ize
(),
3
);
EXPECT_EQ
(
rs
.
s
ize
(),
3
);
EXPECT_TRUE
(
rs
.
A
t
(
1
).
HasErrors
());
EXPECT_TRUE
(
rs
.
a
t
(
1
).
HasErrors
());
}
}
TEST
(
test_transaction
,
test_update_entity
)
{
TEST
(
test_transaction
,
test_update_entity
)
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment