public void AttachServiceToWindowWithTaskbarButtonInfo()
        {
            ImageSource icon_1 = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico"));
            ImageSource icon_2 = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon2.png"));

            RealWindow.TaskbarItemInfo = new TaskbarItemInfo()
            {
                ProgressState    = TaskbarItemProgressState.Paused,
                ProgressValue    = 0.1,
                Description      = "desc",
                Overlay          = icon_1,
                ThumbButtonInfos = new ThumbButtonInfoCollection {
                    new ThumbButtonInfo()
                    {
                        Description = "thumbButton1"
                    }
                },
                ThumbnailClipMargin = new Thickness {
                    Left = 100, Top = 105, Right = 130, Bottom = 110
                }
            };
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService()
            {
                ProgressState    = TaskbarItemProgressState.Error,
                ProgressValue    = 0.2,
                Description      = "desc2",
                OverlayIcon      = icon_2,
                ThumbButtonInfos = new TaskbarThumbButtonInfoCollection {
                    new TaskbarThumbButtonInfo()
                    {
                        Description = "thumbButton2"
                    }
                },
                ThumbnailClipMargin = new Thickness {
                    Left = 50, Top = 555, Right = 135, Bottom = 90
                }
            };

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            Assert.AreEqual(TaskbarItemProgressState.Error, RealWindow.TaskbarItemInfo.ProgressState);
            Assert.AreEqual(0.2, RealWindow.TaskbarItemInfo.ProgressValue);
            Assert.AreEqual("desc2", RealWindow.TaskbarItemInfo.Description);
            AssertHelper.AssertEnumerablesAreEqual(new ThumbButtonInfo[] {
                new ThumbButtonInfo()
                {
                    Description = "thumbButton2"
                },
            }, RealWindow.TaskbarItemInfo.ThumbButtonInfos, true, new string[] { "Command" });

            Assert.AreEqual(new Thickness {
                Left = 50, Top = 555, Right = 135, Bottom = 90
            }, RealWindow.TaskbarItemInfo.ThumbnailClipMargin);
        }
        public void SetOverlayIcon()
        {
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            ITaskbarButtonService taskbarService = taskbarServiceImpl;
            ImageSource           icon_1         = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico"));
            ImageSource           icon_2         = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon2.ico"));

            taskbarService.OverlayIcon = icon_1;
            Assert.AreEqual(icon_1, RealWindow.TaskbarItemInfo.Overlay);
            taskbarService.OverlayIcon = icon_2;
            Assert.AreEqual(icon_2, RealWindow.TaskbarItemInfo.Overlay);
        }
        void TestUri(params Uri[] uris)
        {
            List <ImageSource> sources = new List <ImageSource>();

            foreach (Uri uri in uris)
            {
                sources.Add(new BitmapImage(uri));
                sources.Add(ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(uri));
            }
            foreach (ImageSource source in sources)
            {
                byte[] data = ImageLoader2.ImageToByteArray(source);
                Assert.IsNotNull(data);
                Assert.AreNotEqual(0, data.Length);
                Bitmap bitmap = new Bitmap(new MemoryStream(data));
                Assert.AreEqual(ImageFormat.Png, bitmap.RawFormat);
            }
        }
        public void BindOverlayIcon()
        {
            VM vm = VM.Create();

            RealWindow.DataContext = vm;
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            BindingOperations.SetBinding(taskbarServiceImpl, TaskbarButtonService.OverlayIconProperty, new Binding("OverlayIcon"));
            EnqueueShowRealWindow();
            ITaskbarButtonService taskbarService = taskbarServiceImpl;
            ImageSource           icon_1         = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico"));
            ImageSource           icon_2         = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon2.ico"));

            vm.OverlayIcon = icon_1;
            Assert.AreEqual(icon_1, RealWindow.TaskbarItemInfo.Overlay);
            vm.OverlayIcon = icon_2;
            Assert.AreEqual(icon_2, RealWindow.TaskbarItemInfo.Overlay);
        }
        public void ThumbButtonPropertiesChanged()
        {
            TaskbarButtonService taskbarServiceImpl = new TaskbarButtonService();

            Interaction.GetBehaviors(RealWindow).Add(taskbarServiceImpl);
            EnqueueShowRealWindow();
            ImageSource            imageSource1      = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon1.ico"));
            ImageSource            imageSource2      = ApplicationJumpListServiceTestsImageSourceHelper.GetImageSource(AssemblyHelper.GetResourceUri(typeof(TaskbarButtonServiceTests).Assembly, "Icons/icon2.ico"));
            ITaskbarButtonService  taskbarService    = taskbarServiceImpl;
            TaskbarThumbButtonInfo thumbButtonInfo_1 = new TaskbarThumbButtonInfo()
            {
                Description         = "thumbButton1",
                IsEnabled           = true,
                IsInteractive       = true,
                IsBackgroundVisible = false,
                DismissWhenClicked  = false,
                Visibility          = Visibility.Visible,
                ImageSource         = imageSource1
            };

            taskbarService.ThumbButtonInfos.Add(thumbButtonInfo_1);
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Description         = "thumbButton2";
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsEnabled           = false;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsInteractive       = false;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].IsBackgroundVisible = true;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].DismissWhenClicked  = true;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].Visibility          = Visibility.Collapsed;
            RealWindow.TaskbarItemInfo.ThumbButtonInfos[0].ImageSource         = imageSource2;
            EnqueueShowRealWindow();
            AssertHelper.AssertEnumerablesAreEqual(new TaskbarThumbButtonInfo[] {
                new TaskbarThumbButtonInfo()
                {
                    Description         = "thumbButton2",
                    IsEnabled           = false,
                    IsInteractive       = false,
                    IsBackgroundVisible = true,
                    DismissWhenClicked  = true,
                    Visibility          = Visibility.Collapsed,
                    ImageSource         = imageSource2
                },
            }, taskbarService.ThumbButtonInfos, true, new string[] { "ItemInfo" });
        }