Rework Data Model Tests of HL Iroha

TitleRework the tests according to an existing plan and having examples to follow.
Status

CANCELLED

Difficulty

LOW

Description 

One of the major current trends of Iroha development is modularization and decoupling. Though there are some base concepts that will persist, such as the data model. Iroha has a set of commands and queries that are extensively covered by tests. But as we approached the data model decoupling, we found these tests unnecessarily too tightly bound to existing code, rather than only using proper interfaces.

We have already created a replacement test framework and reworked several commands and queries tests with it. But there is more to do in this direction. So, in this project, the mentee will have complete and functional examples of the work that needs to be done, and guidance from mentor about the architecture and rationale of the changes.

Additional Information

Commands and queries of Iroha: https://iroha.readthedocs.io/en/master/develop/api.html

A guide to Google Test that explains many useful things to keep in mind while implementing tests: https://github.com/google/googletest/blob/master/googletest/docs/primer.md

Learning Objectives

Test design: reasonable scope, accurate assumptions and expectations, following apparent examples of our previous test design flaws.

Google test framework experience.

Expected Outcome

The outcome of the project is a reworked set of data model tests that is decoupled from current implementation and will provide us a great help in having pluggable data model modules.

Relation to Hyperledger 

HL Iroha.

Education Level

Any, see skills.

Skills

Mainly C++.

Experience in writing tests great plus.

In our tests we heavily use Google Test framework, but it is easy to start working with having lots of examples.

Future plans

Modular data model in Iroha.

Preferred Hours and Length of Internship

Full time preferred, but part time also possible.

Mentor(s) Names and Contact Info

Mikhail Boldyrev (boldrev@soramitsu.co.jp, Telegram: mboldyrev).

Mentee Name and Contact Info

Ashutosh Tiwari (atiwarixs@gmail.com, Telegram: ashttxx)

Project Plan

A detailed project plan can be found here.