public void HorizontalMargin_ChangedHorizontalMarginSetting_SettedValue()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.HorizontalMarginNumber = 0;
            viewModel.SettingsWrapper           = fakeSettings;

            // act
            fakeSettings.HorizontalMarginNumber = 1;


            // assert
            Assert.Equal(1, viewModel.HorizontalMargin);
        }
        public void HorizontalAlignment_ChangedHorizontalAlignmentSettingToRight_SettedBottom()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.HorizontalAlignment = HALIGN_LEFT;
            viewModel.SettingsWrapper        = fakeSettings;

            // act
            fakeSettings.HorizontalAlignment = HALIGN_RIGHT;


            // assert
            Assert.Equal(HorizontalAlignment.Right, viewModel.HorizontalAlignment);
        }
        public void HorizontalAlignment_ChangedHorizontalAlignmentSettingToCenter_SettedCenter()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.HorizontalAlignment = HALIGN_LEFT;
            viewModel.SettingsWrapper        = fakeSettings;

            // act
            fakeSettings.HorizontalAlignment = HALIGN_CENTER;


            // assert
            Assert.Equal(HorizontalAlignment.Center, viewModel.HorizontalAlignment);
        }
        public void VerticalAlignment_ChangedVerticalAlignmentSettingToBottom_SettedBottom()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.VerticalAlignment = VALIGN_TOP;
            viewModel.SettingsWrapper      = fakeSettings;

            // act
            fakeSettings.VerticalAlignment = VALIGN_BOTTOM;


            // assert
            Assert.Equal(VerticalAlignment.Bottom, viewModel.VerticalAlignment);
        }
        public void VerticalAlignment_ChangedVerticalAlignmentSettingToCenter_SettedCenter()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.VerticalAlignment = VALIGN_TOP;
            viewModel.SettingsWrapper      = fakeSettings;

            // act
            fakeSettings.VerticalAlignment = VALIGN_CENTER;


            // assert
            Assert.Equal(VerticalAlignment.Center, viewModel.VerticalAlignment);
        }
        /// <summary>
        /// スクリーン サイズ 1024x768、右下配置、垂直方向の余白 90、水平方向の余白 110 で初期化します。
        /// </summary>
        /// <param name="viewModel"><see cref="MainWindowViewModel" /></param>
        /// <param name="fakeScreenSource"><see cref="FakePrimaryScreenSizeEventSource" /></param>
        /// <param name="fakeSettings"><see cref="FakeSettingsWrapper" /></param>
        private static void WindowPositionTestSetting(out MainWindowViewModel viewModel, out FakePrimaryScreenSizeEventSource fakeScreenSource, out FakeSettingsWrapper fakeSettings)
        {
            viewModel        = new MainWindowViewModel(null, null);
            fakeScreenSource = new FakePrimaryScreenSizeEventSource();
            fakeSettings     = new FakeSettingsWrapper();
            viewModel.PrimaryScreenSizeEventSource = fakeScreenSource;
            viewModel.SettingsWrapper = fakeSettings;

            fakeScreenSource.FakeScreenSizeUpdate(768, 1024);

            fakeSettings.VerticalAlignment      = VALIGN_BOTTOM;
            fakeSettings.HorizontalAlignment    = HALIGN_RIGHT;
            fakeSettings.VerticalMarginNumber   = 95;
            fakeSettings.IsPercentVertical      = false;
            fakeSettings.HorizontalMarginNumber = 110;
            fakeSettings.IsPercentHorizontal    = false;
        }
        public void HorizontalMargin_ChangedHorizontalMarginSetting_OccursPropertyChangedEvent()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.HorizontalMarginNumber = 0;
            viewModel.SettingsWrapper           = fakeSettings;

            var actual = false;

            viewModel.PropertyChanged += (sender, e) => {
                if (e.PropertyName == nameof(MainWindowViewModel.HorizontalMargin))
                {
                    actual = true;
                }
            };

            // act
            fakeSettings.HorizontalMarginNumber = 1;

            // assert
            Assert.True(actual);
        }
        public void HorizontalAlignment_ChangedHorizontalAlignmentSetting_OccursPropertyChangedEvent()
        {
            // arrange
            var viewModel    = new MainWindowViewModel(null, null);
            var fakeSettings = new FakeSettingsWrapper();

            fakeSettings.HorizontalAlignment = HALIGN_LEFT;
            viewModel.SettingsWrapper        = fakeSettings;

            var actual = false;

            viewModel.PropertyChanged += (sender, e) => {
                if (e.PropertyName == nameof(MainWindowViewModel.HorizontalAlignment))
                {
                    actual = true;
                }
            };

            // act
            fakeSettings.HorizontalAlignment = HALIGN_CENTER;

            // assert
            Assert.True(actual);
        }