LCOV - code coverage report
Current view: top level - shared_model/backend/protobuf/query_responses/impl - proto_role_permissions_response.cpp (source / functions) Hit Total Coverage
Test: coverage_cleared.info Lines: 11 17 64.7 %
Date: 2018-12-05 17:11:35 Functions: 8 27 29.6 %

          Line data    Source code
       1             : /**
       2             :  * Copyright Soramitsu Co., Ltd. All Rights Reserved.
       3             :  * SPDX-License-Identifier: Apache-2.0
       4             :  */
       5             : 
       6             : #include "backend/protobuf/query_responses/proto_role_permissions_response.hpp"
       7             : #include <boost/range/numeric.hpp>
       8             : #include "backend/protobuf/permissions.hpp"
       9             : #include "utils/string_builder.hpp"
      10             : 
      11             : namespace shared_model {
      12             :   namespace proto {
      13             : 
      14             :     template <typename QueryResponseType>
      15             :     RolePermissionsResponse::RolePermissionsResponse(
      16             :         QueryResponseType &&queryResponse)
      17           5 :         : CopyableProto(std::forward<QueryResponseType>(queryResponse)),
      18           5 :           rolePermissionsResponse_{proto_->role_permissions_response()},
      19             :           rolePermissions_{[this] {
      20           2 :             return boost::accumulate(
      21           2 :                 rolePermissionsResponse_.permissions(),
      22           2 :                 interface::RolePermissionSet{},
      23             :                 [](auto &&permissions, const auto &permission) {
      24           3 :                   permissions.set(permissions::fromTransport(
      25             :                       static_cast<iroha::protocol::RolePermission>(
      26           3 :                           permission)));
      27           3 :                   return std::forward<decltype(permissions)>(permissions);
      28             :                 });
      29           5 :           }} {}
      30             : 
      31             :     template RolePermissionsResponse::RolePermissionsResponse(
      32             :         RolePermissionsResponse::TransportType &);
      33             :     template RolePermissionsResponse::RolePermissionsResponse(
      34             :         const RolePermissionsResponse::TransportType &);
      35             :     template RolePermissionsResponse::RolePermissionsResponse(
      36             :         RolePermissionsResponse::TransportType &&);
      37             : 
      38             :     RolePermissionsResponse::RolePermissionsResponse(
      39             :         const RolePermissionsResponse &o)
      40           0 :         : RolePermissionsResponse(o.proto_) {}
      41             : 
      42             :     RolePermissionsResponse::RolePermissionsResponse(
      43             :         RolePermissionsResponse &&o)
      44           5 :         : RolePermissionsResponse(std::move(o.proto_)) {}
      45             : 
      46             :     const interface::RolePermissionSet &
      47             :     RolePermissionsResponse::rolePermissions() const {
      48           2 :       return *rolePermissions_;
      49             :     }
      50             : 
      51             :     std::string RolePermissionsResponse::toString() const {
      52           0 :       return detail::PrettyStringBuilder()
      53           0 :           .init("RolePermissionsResponse")
      54           0 :           .appendAll(permissions::toString(rolePermissions()),
      55             :                      [](auto p) { return p; })
      56           0 :           .finalize();
      57           0 :     }
      58             : 
      59             :   }  // namespace proto
      60             : }  // namespace shared_model

Generated by: LCOV version 1.13