LCOV - code coverage report
Current view: top level - shared_model/backend/protobuf/commands/impl - proto_create_role.cpp (source / functions) Hit Total Coverage
Test: cleared_cor.info Lines: 17 18 94.4 %
Date: 2019-03-07 14:46:43 Functions: 11 23 47.8 %

          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/commands/proto_create_role.hpp"
       7             : 
       8             : #include <boost/range/numeric.hpp>
       9             : #include "backend/protobuf/permissions.hpp"
      10             : 
      11             : namespace shared_model {
      12             :   namespace proto {
      13             : 
      14             :     template <typename CommandType>
      15             :     CreateRole::CreateRole(CommandType &&command)
      16       13253 :         : CopyableProto(std::forward<CommandType>(command)),
      17       13296 :           create_role_{proto_->create_role()},
      18       13329 :           role_permissions_{boost::accumulate(
      19       13296 :               create_role_.permissions(),
      20       13279 :               interface::RolePermissionSet{},
      21             :               [](auto &&acc, const auto &perm) {
      22      145875 :                 acc.set(permissions::fromTransport(
      23      145875 :                     static_cast<iroha::protocol::RolePermission>(perm)));
      24      145875 :                 return std::forward<decltype(acc)>(acc);
      25       13329 :               })} {}
      26             : 
      27             :     template CreateRole::CreateRole(CreateRole::TransportType &);
      28             :     template CreateRole::CreateRole(const CreateRole::TransportType &);
      29             :     template CreateRole::CreateRole(CreateRole::TransportType &&);
      30             : 
      31             :     CreateRole::CreateRole(const CreateRole &o) : CreateRole(o.proto_) {}
      32             : 
      33             :     CreateRole::CreateRole(CreateRole &&o) noexcept
      34       13330 :         : CreateRole(std::move(o.proto_)) {}
      35             : 
      36             :     const interface::types::RoleIdType &CreateRole::roleName() const {
      37        5810 :       return create_role_.role_name();
      38             :     }
      39             : 
      40             :     const interface::RolePermissionSet &CreateRole::rolePermissions() const {
      41        5826 :       return role_permissions_;
      42             :     }
      43             : 
      44             :     std::string CreateRole::toString() const {
      45           3 :       return detail::PrettyStringBuilder()
      46           2 :           .init("CreateRole")
      47           2 :           .append("role_name", roleName())
      48           3 :           .appendAll(permissions::toString(rolePermissions()),
      49             :                      [](auto p) { return p; })
      50           3 :           .finalize();
      51           0 :     }
      52             : 
      53             :   }  // namespace proto
      54             : }  // namespace shared_model

Generated by: LCOV version 1.13