2018-10-29 10:53:22 +01:00
|
|
|
import {assert} from "chai"
|
|
|
|
import ConfigProvider from "../../src/ConfigProvider"
|
|
|
|
import DIDRegistry from "../../src/keeper/contracts/DIDRegistry"
|
|
|
|
import Web3Provider from "../../src/keeper/Web3Provider"
|
|
|
|
import ValueType from "../../src/models/ValueType"
|
|
|
|
import Account from "../../src/ocean/Account"
|
|
|
|
import IdGenerator from "../../src/ocean/IdGenerator"
|
|
|
|
import Ocean from "../../src/ocean/Ocean"
|
|
|
|
import Logger from "../../src/utils/Logger"
|
|
|
|
import config from "../config"
|
2018-11-07 14:33:56 +01:00
|
|
|
import TestContractHandler from "./TestContractHandler"
|
2018-10-29 10:53:22 +01:00
|
|
|
|
|
|
|
let ocean: Ocean
|
|
|
|
let didRegistry: DIDRegistry
|
|
|
|
|
|
|
|
describe("DIDRegistry", () => {
|
|
|
|
|
|
|
|
before(async () => {
|
|
|
|
ConfigProvider.setConfig(config)
|
2018-11-07 14:33:56 +01:00
|
|
|
await TestContractHandler.prepareContracts()
|
2018-10-29 10:53:22 +01:00
|
|
|
ocean = await Ocean.getInstance(config)
|
|
|
|
didRegistry = await DIDRegistry.getInstance()
|
|
|
|
})
|
|
|
|
|
|
|
|
describe("#registerAttribute()", () => {
|
|
|
|
|
|
|
|
it("should register an attribute in a new did", async () => {
|
|
|
|
const ownerAccount: Account = (await ocean.getAccounts())[0]
|
2018-12-17 14:17:35 +01:00
|
|
|
const did = IdGenerator.generateId()
|
2018-10-29 10:53:22 +01:00
|
|
|
const providerKey = Web3Provider.getWeb3().utils.fromAscii("provider")
|
|
|
|
const data = "my nice provider, is nice"
|
|
|
|
const receipt = await didRegistry.registerAttribute(did, ValueType.DID, providerKey,
|
|
|
|
data, ownerAccount.getId())
|
|
|
|
assert(receipt.status)
|
|
|
|
assert(receipt.events.DIDAttributeRegistered)
|
|
|
|
})
|
|
|
|
|
|
|
|
it("should register another attribute in the same did", async () => {
|
|
|
|
const ownerAccount: Account = (await ocean.getAccounts())[0]
|
2018-12-17 14:17:35 +01:00
|
|
|
const did = IdGenerator.generateId()
|
2018-10-29 10:53:22 +01:00
|
|
|
{
|
|
|
|
// register the first attribute
|
|
|
|
const providerKey = Web3Provider.getWeb3().utils.fromAscii("provider")
|
|
|
|
const data = "my nice provider, is nice"
|
|
|
|
await didRegistry.registerAttribute(did, ValueType.DID, providerKey,
|
|
|
|
data, ownerAccount.getId())
|
|
|
|
}
|
|
|
|
{
|
|
|
|
// register the second attribute with the same did
|
|
|
|
const providerKey = Web3Provider.getWeb3().utils.fromAscii("provider2")
|
|
|
|
const data = "asdsad"
|
|
|
|
const receipt = await didRegistry.registerAttribute(did, ValueType.DID, providerKey,
|
|
|
|
data, ownerAccount.getId())
|
|
|
|
assert(receipt.status)
|
|
|
|
assert(receipt.events.DIDAttributeRegistered)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
describe("#getOwner()", () => {
|
|
|
|
|
|
|
|
it("should get the owner of a did properly", async () => {
|
|
|
|
const ownerAccount: Account = (await ocean.getAccounts())[0]
|
2018-12-17 14:17:35 +01:00
|
|
|
const did = IdGenerator.generateId()
|
2018-10-29 10:53:22 +01:00
|
|
|
const providerKey = Web3Provider.getWeb3().utils.fromAscii("provider")
|
|
|
|
const data = "my nice provider, is nice"
|
|
|
|
await didRegistry.registerAttribute(did, ValueType.DID, providerKey,
|
|
|
|
data, ownerAccount.getId())
|
|
|
|
|
|
|
|
const owner = await didRegistry.getOwner(did)
|
|
|
|
|
|
|
|
assert(owner === ownerAccount.getId(), `Got ${owner} but expected ${ownerAccount.getId()}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
it("should get 0x00.. for a not registered did", async () => {
|
2018-12-17 14:17:35 +01:00
|
|
|
const owner = await didRegistry.getOwner("1234")
|
2018-10-29 10:53:22 +01:00
|
|
|
assert(owner === "0x0000000000000000000000000000000000000000")
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
describe("#getUpdateAt()", () => {
|
|
|
|
|
|
|
|
it("should the block number of the last update of the did attribute", async () => {
|
|
|
|
const ownerAccount: Account = (await ocean.getAccounts())[0]
|
2018-12-17 14:17:35 +01:00
|
|
|
const did = IdGenerator.generateId()
|
2018-10-29 10:53:22 +01:00
|
|
|
const providerKey = Web3Provider.getWeb3().utils.fromAscii("provider")
|
|
|
|
const data = "my nice provider, is nice"
|
|
|
|
await didRegistry.registerAttribute(did, ValueType.DID, providerKey,
|
|
|
|
data, ownerAccount.getId())
|
|
|
|
|
|
|
|
const updatedAt: number = await didRegistry.getUpdateAt(did)
|
|
|
|
|
|
|
|
assert(updatedAt > 0)
|
|
|
|
Logger.log(typeof updatedAt)
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
})
|