Пример #1
0
        public async Task CanManageOracles()
        {
            await Tester.AssertInvoke(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "set",
                "neo", "57caa081b0a0e9e9413cf4fb72ddc2630d609bdf6a912b98c4cfd358a4ce1496"
            }, 1);

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "add",
                "neo", "57caa081b0a0e9e9413cf4fb72ddc2630d609bdf6a912b98c4cfd358a4ce1496"
            });

            await Tester.AssertInvoke(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "add",
                "neo", "57caa081b0a0e9e9413cf4fb72ddc2630d609bdf6a912b98c4cfd358a4ce1496"
            }, 1);

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "set",
                "neo", "16735f228c76e81e1ca671521991f682ad50a79ad7a44fb073f5a5462a4243ba"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "show",
                "neo"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "list"
            });

            Assert.Equal("neo\t16735f228c76e81e1ca671521991f682ad50a79ad7a44fb073f5a5462a4243ba" + Environment.NewLine, Tester.GetLastOutput());
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "remove",
                "neo"
            });

            await Tester.AssertInvoke(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "remove",
                "neo"
            }, 1);

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "list"
            });

            Assert.Empty(Tester.GetLastOutput());
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "generate",
                "neo"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "show",
                "neo"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "show",
                "neo", "--show-sensitive"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "generate",
                "neo2"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "show",
                "neo2", "--show-sensitive"
            });
        }
Пример #2
0
        public async Task CanManageEvents()
        {
            Log.WriteLine("Adding a wellknown oracle");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "add",
                "OutcomeObserver",
                "57caa081b0a0e9e9413cf4fb72ddc2630d609bdf6a912b98c4cfd358a4ce1496"
            });

            Log.WriteLine("No events has been added yet");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "list"
            });

            Assert.Empty(Tester.GetLastOutput());
            Log.WriteLine("Adding an event that our oracle announced");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "add",
                "OutcomeObserver/Elections",
                "57caa081b0a0e9e9413cf4fb72ddc2630d609bdf6a912b98c4cfd358a4ce1496",
                "Republican_win",
                "Democrat_win",
                "other"
            });

            Log.WriteLine("The event should show in the list");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "list"
            });

            Assert.Equal("OutcomeObserver/Elections" + Environment.NewLine, Tester.GetLastOutput());
            Log.WriteLine("The event should show in the list, if we filter by the oracle's name");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "list",
                "--oracle", "outcomeobserver"
            });

            Assert.Equal("OutcomeObserver/Elections" + Environment.NewLine, Tester.GetLastOutput());
            Log.WriteLine("But not with another oracle name");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "list",
                "--oracle", "blah"
            });

            Assert.Empty(Tester.GetLastOutput());
            Log.WriteLine("We should be able to see the details of the event");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "show", "OutcomeObserver/Elections"
            });

            Log.WriteLine("Let's generate a new oracle, and an event from it");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "generate",
                "neo"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "generate", "neo/NeoElections",
                "Republicans", "Democrats", "Smith"
            });

            Log.WriteLine("It should be in the list");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "show", "neo/NeoElections"
            });

            Log.WriteLine("Let's attest it");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "attest", "sign", "neo/NeoElections", "Smith"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "show", "neo/NeoElections"
            });

            Assert.Contains("Attestation", Tester.GetLastOutput());
            Log.WriteLine("Let's check if we can enforce two attestation");
            await Tester.AssertInvoke(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "attest", "sign", "neo/NeoElections", "Republicans"
            }, 1);

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "attest", "sign", "-f", "neo/NeoElections", "Republicans"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "show", "neo/NeoElections"
            });

            Log.WriteLine("Let's try to manually add an attestation");
            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "add",
                "morpheus", "399e2348d8b5db8161a915af8efd900aa7241e6eed6d28ff8cc77afc505e8258"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "add",
                "morpheus/elections", "2fe5252fa3c676a4522f2e8a05d2bc3a79c865ca17a44ab6d168bcc79194491f",
                "Republicans", "Democrats", "Smith"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "attest", "add",
                "morpheus/elections", "b7728d379612731b26db15249106d9b59855c4c3957454415a93cb5daa065803"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "show", "morpheus/elections"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "event", "attest", "add",
                "morpheus/elections", "67812f3bd89a6ccc27ced51030f604a738ee9ac1726d21c22cb7282b2585f05e"
            });

            await Tester.AssertInvokeSuccess(new string[]
            {
                "--datadir", GetDataDirectory(),
                "oracle", "show", "morpheus", "--show-sensitive"
            });

            Assert.Contains("Has private key: True", Tester.GetLastOutput());
        }