Пример #1
0
        private static PluginViewModelBase GeneratePathfinderCharacter()
        {
            var       rules     = new PathfinderRules();
            Character character = rules.CreateCharacter();

            character.Name = "Pathfinder Guy";
            return(new PathfinderCharacterViewModel(character));
        }
        public void NameIsRead()
        {
            PathfinderRules rules     = new PathfinderRules();
            var             character = rules.CreateCharacter();

            character.Name = "Test Name";
            PathfinderCharacterViewModel model = new PathfinderCharacterViewModel(character);

            model.Name.Should().Be("Test Name");
        }
        public void NameIsRead()
        {
            PathfinderRules rules     = new PathfinderRules();
            var             character = rules.CreateCharacter();

            character = character.WithName("Test Name");
            PathfinderCharacterViewModel model = new PathfinderCharacterViewModel(new BehaviorSubject <Character>(character));

            model.Name.Should().Be("Test Name");
        }
        public void NameChangeUpdatesModel()
        {
            PathfinderRules rules     = new PathfinderRules();
            var             character = rules.CreateCharacter();

            character = character.WithName("Test Name");
            var model = new BehaviorSubject <Character>(character);
            PathfinderCharacterViewModel viewModel = new PathfinderCharacterViewModel(model);

            viewModel.Name = "New Name";
            model.Value.Name.Should().Be("New Name");
        }
        public void SameNameDoesNotTriggerUpdate()
        {
            PathfinderRules rules     = new PathfinderRules();
            var             character = rules.CreateCharacter();

            character.Name = "Test Name";
            PathfinderCharacterViewModel model = new PathfinderCharacterViewModel(character);
            int changingCount = 0;
            var obs           = new Mock <IObserver <IReactivePropertyChangedEventArgs <IReactiveObject> > >();

            obs.Setup(o => o.OnNext(It.IsAny <IReactivePropertyChangedEventArgs <IReactiveObject> >()))
            .Callback(() => changingCount++);

            changingCount.Should().Be(0, "name has not be changed yet");
            using var _ = model.Changed.Subscribe(obs.Object);
            model.Name  = "Test Name";
            changingCount.Should().Be(0, "name was set to same value");
        }
        public void NameChangeTriggersUpdate()
        {
            PathfinderRules rules     = new PathfinderRules();
            var             character = rules.CreateCharacter();

            character = character.WithName("Test Name");
            PathfinderCharacterViewModel model = new PathfinderCharacterViewModel(new BehaviorSubject <Character>(character));
            int changingCount = 0;
            var obs           = new Mock <IObserver <IReactivePropertyChangedEventArgs <IReactiveObject> > >();

            obs.Setup(o => o.OnNext(It.IsAny <IReactivePropertyChangedEventArgs <IReactiveObject> >()))
            .Callback(() => changingCount++);

            changingCount.Should().Be(0, "name has not be changed yet");
            using var _ = model.Changed.Subscribe(obs.Object);
            model.Name  = "New Name";
            changingCount.Should().Be(1, "name has been changed");
        }
Пример #7
0
        public static Character CreateWizard()
        {
            var       rules     = new PathfinderRules();
            Character character = rules.CreateCharacter();

            character = character.WithName("Sample Wizard");
            character = character.WithLevels(
                ImmutableList.Create(
                    new CharacterLevel("Wizard", rules).WithVariable(
                        "Hp",
                        new CharacterVariable(rules, new FixedValue("BASE", 6))
                        ),
                    new CharacterLevel("Wizard", rules).WithVariable(
                        "Hp",
                        new CharacterVariable(rules, new FixedValue("BASE", 4))
                        )
                    )
                );
            return(character);
        }