public async Task CreateContract_CallswithCorrectParams_Test()
        {
            var body = new SmartContractSchema
            {
                TransactionType      = "name",
                Image                = "ubuntu:latest",
                ExecutionOrder       = SmartContractExecutionOrder.Serial,
                EnvironmentVariables = new { Banana = "banana", Apple = "banana" },
                Cmd       = "banana",
                Arguments = new string[] { "-m cool" }
            };
            await _dragonchainClient.CreateSmartContract(body.TransactionType, body.Image, body.Cmd, body.Arguments, (SmartContractExecutionOrder)body.ExecutionOrder, body.EnvironmentVariables);

            _httpService.Verify(service => service.PostAsync <DragonchainContractResponse>("/contract", It.IsAny <SmartContractSchema>(), ""), Times.Once);
        }
Exemplo n.º 2
0
        public async Task CreateContract_Test()
        {
            // use task delay to ensure contract is ready to be retrieved and deleted
            if (AreLevel1TestsConfigured())
            {
                var createContractResponse = await _dragonchainLevel1Client.CreateSmartContract("Test", "ubuntu:latest", "python3.6", new string[] { "something" },
                                                                                                SmartContractExecutionOrder.Serial, new { Test = "env" });

                Assert.AreEqual(202, createContractResponse.Status);
                Assert.IsTrue(createContractResponse.Ok);
                Assert.IsInstanceOf <DragonchainContractResponse>(createContractResponse.Response);
                await Task.Delay(30000);

                try
                {
                    var getContractResponse = await _dragonchainLevel1Client.GetSmartContract(createContractResponse.Response.Success.Id, null);

                    Assert.AreEqual(200, getContractResponse.Status);
                    Assert.IsTrue(getContractResponse.Ok);
                    Assert.IsInstanceOf <SmartContractAtRest>(getContractResponse.Response);
                    Assert.AreEqual(createContractResponse.Response.Success.Id, getContractResponse.Response.Id);

                    var updateContractResponse = await _dragonchainLevel1Client.UpdateSmartContract(createContractResponse.Response.Success.Id, cmd : "python3.7");

                    Assert.AreEqual(202, updateContractResponse.Status);
                    Assert.IsTrue(updateContractResponse.Ok);
                    Assert.IsInstanceOf <DragonchainContractResponse>(updateContractResponse.Response);
                    Assert.AreEqual("updating", updateContractResponse.Response.Success.Status.State);
                    await Task.Delay(30000);
                }
                finally
                {
                    var deleteContractResponse = await _dragonchainLevel1Client.DeleteSmartContract(createContractResponse.Response.Success.Id);

                    Assert.AreEqual(202, deleteContractResponse.Status);
                    Assert.IsTrue(deleteContractResponse.Ok);
                    Assert.IsInstanceOf <SmartContractAtRest>(deleteContractResponse.Response);
                }
            }
            else
            {
                Assert.Warn("User secrets - dragonchain-sdk.tests-79a3edd0-2092-40a2-a04d-dcb46d5ca9ed not available");
            }
        }