/ src / modules / fancyzones / FancyZonesEditor.UnitTests / DefaultLayoutsModelTests.cs
DefaultLayoutsModelTests.cs
 1  // Copyright (c) Microsoft Corporation
 2  // The Microsoft Corporation licenses this file to you under the MIT license.
 3  // See the LICENSE file in the project root for more information.
 4  using FancyZonesEditor.Models;
 5  
 6  namespace UnitTestsFancyZonesEditor;
 7  
 8  [TestClass]
 9  public class DefaultLayoutsModelTests
10  {
11      [TestMethod]
12      public void OverridingLayoutClearsOldDefault()
13      {
14          var defaultLayoutsModel = new DefaultLayoutsModel();
15          GridLayoutModel firstLayout = new GridLayoutModel();
16          CanvasLayoutModel secondLayout = new CanvasLayoutModel("steve");
17  
18          defaultLayoutsModel.Set(firstLayout, MonitorConfigurationType.Horizontal);
19          Assert.AreEqual(defaultLayoutsModel.Layouts[(int)MonitorConfigurationType.Horizontal], firstLayout);
20  
21          defaultLayoutsModel.Set(secondLayout, MonitorConfigurationType.Horizontal);
22          Assert.AreNotEqual(defaultLayoutsModel.Layouts[(int)MonitorConfigurationType.Horizontal], firstLayout);
23          Assert.AreEqual(defaultLayoutsModel.Layouts[(int)MonitorConfigurationType.Horizontal], secondLayout);
24      }
25  
26      [TestMethod]
27      public void SettingTheVerticalLayoutShouldBeTheDefault()
28      {
29          var defaultLayoutsModel = new DefaultLayoutsModel();
30          GridLayoutModel firstLayout = new GridLayoutModel();
31          defaultLayoutsModel.Set(firstLayout, MonitorConfigurationType.Horizontal);
32          defaultLayoutsModel.Set(firstLayout, MonitorConfigurationType.Vertical);
33  
34          Assert.AreEqual(defaultLayoutsModel.Layouts[MonitorConfigurationType.Vertical], firstLayout);
35      }
36  
37      [TestMethod]
38      public void RestoringLayoutShouldSetLayouts()
39      {
40          var defaultLayoutsModel = new DefaultLayoutsModel();
41          GridLayoutModel firstLayout = new GridLayoutModel();
42          CanvasLayoutModel secondLayout = new CanvasLayoutModel("steve");
43          var restoredLayouts = new Dictionary<MonitorConfigurationType, LayoutModel> { { MonitorConfigurationType.Horizontal, firstLayout }, { MonitorConfigurationType.Vertical, secondLayout } };
44          defaultLayoutsModel.Restore(restoredLayouts);
45  
46          CollectionAssert.AreEqual(defaultLayoutsModel.Layouts, restoredLayouts);
47      }
48  }