Rewrite our test suite from scratch
That issue may sound strange, but that is true.
Our comprehensive test suite (around 150 tests) is good, but at the same time not.
It's because it is based on assumptions, which is bad in general, and break all the tests when implementing unique id #222 
Current test suite has 2 assumptions:
- We assume that tests are run in the same order always, by filesystem ordering in directories, by the order defined in code inside files. It means that we can't split our tests into pieces and parallel execute it. Also it means that we are testing our use case, even though it covers many different parts, it might miss some. It is more like, functional or integrational tests, not unit tests. Currently we both simulate some common approach and unit test some functions
- Also, we assume that objects IDs are integers in range from 1 to N, which is also incorrect

Plus, this test suite was created in the early days of BitcartCC, a lot have changed, especially after our refactors (#217 and #219).

I propose to rewrite our test suite from scratch, no longer making any assumptions, making the test suite working for us long-term.

From discussion, we have decided that @xiaoxianma will initialize the initial structure of new tests, and I will join in. Any additional help welcome. We will re-think everything that was tested before and that should be tested now.