public void InitializeFromFunction()
        {
            Subject.UseViewModelMethods = true;
            var vm = new FunctionViewModel();
            var view = new SampleViewWithSuffix();

            Subject.Bind(vm, view);

            Assert.That(view.PumaLabel.Text, Is.EqualTo(vm.PumaText()));
            Assert.That(view.RockDoveLabel.Text, Is.EqualTo("12"));
        }
        public void ConvertToStringIfDestinationIsStringButSourceIsNot()
        {
            var viewModel = new {Puma = 12};
            var view = new SampleViewWithSuffix();

            Subject.Bind(viewModel, view);

            Assert.That(view.PumaLabel.Text, Is.EqualTo("12"));
        }
        public void MatchViewWithSuffixAndControlProperty()
        {
            const string expected = "changed";
            var viewModel = new SampleViewModel { Puma = "initial" };
            var view = new SampleViewWithSuffix();
            Subject.Bind(viewModel, view);
            Assert.That(view.PumaLabel.Text, Is.EqualTo("initial"));

            viewModel.Puma = expected;

            Assert.That(view.PumaLabel.Text, Is.EqualTo(expected));
        }
        public void MustFindPrivateProperties()
        {
            const string expected = "We have to do this because MonoTouch Outlets are non-public";
            var viewModel = new SampleViewModelWithSuffix();
            var view = new SampleViewWithSuffix();
            Subject.Bind(viewModel, view);

            viewModel.PrivateLabelText = expected;

            Assert.That(view.PrivateLabelText(), Is.EqualTo(expected));
        }
        public void UpdateControlsTextPropertyWithSuffix()
        {
            const string expected = "Changed";
            var viewModel = new SampleViewModelWithSuffix { PumaText = "Initial value" };
            var view = new SampleViewWithSuffix();
            Subject.Bind(viewModel, view);

            viewModel.PumaText = expected;

            Assert.That(view.PumaLabel.Text, Is.EqualTo(expected));
        }
        public void InitializeWithControlSuffix()
        {
            const string expected = "Expected text";
            var viewModel = new SampleStaticViewModel { RockDoveText = expected };
            var view = new SampleViewWithSuffix();

            Subject.Bind(viewModel, view);

            Assert.That(view.RockDoveLabel.Text, Is.EqualTo(expected));
            Assert.That(view.SomeOtherLabel.Text, Is.EqualTo(default(string)));
        }