public void Paste()
        {
            var console = new UnitTestProvider(new List <string>
            {
                "p",
                "0",
                "ok"
            });

            var interactionProvider = new ConsoleInteractionProvider(console);

            interactionProvider.clipboard.Add(new MyDto()
            {
                Prop = "abc"
            });

            var myDto = new MyDto()
            {
                Prop = "test"
            };

            Assert.IsTrue(interactionProvider.EditObject(typeof(MyDto), myDto, out myDto));

            Assert.IsTrue(myDto.Prop == "abc");
        }
        public void AssignProperty()
        {
            var console = new UnitTestProvider(new List <string>
            {
                "1",                  // first property
                "argument for Prop1", // value for property
                "ok"                  // confirm
            });

            var interactionProvider = new ConsoleInteractionProvider(console);

            var args = new Args();

            Assert.IsTrue(interactionProvider.EditObject(typeof(Args), args, out args));

            Assert.AreEqual(args.Prop1, "argument for Prop1");
        }
        public void Copy()
        {
            var console = new UnitTestProvider(new List <string>
            {
                "c",
                "0",
                "ok"
            });

            var interactionProvider = new ConsoleInteractionProvider(console);

            var args = new Args {
                Prop1 = "test"
            };

            Assert.IsTrue(interactionProvider.EditObject(typeof(Args), args, out args));

            Assert.IsTrue(((Args)interactionProvider.clipboard[0]).Prop1 == "test");
        }