コード例 #1
0
        public void TestSetup()
        {
            TestHarnessModel.ResetSingleton();
            TestRunnerMockViewTest.InvokeCount = 0;

            viewTestRunner = new ViewTestRunner { Interval = 0.01 };

            module = new ViewTestClassesAssemblyModule(new ModuleSetting());
            module.LoadAssembly(GetType().Assembly);

            testClass = module.GetTestClasses("TestRunnerMockViewTest").FirstOrDefault();
            testMethodInfo = testClass.GetTestMethod("SampleTestRunnerMethod").MethodInfo;
        }
        public void Initialize()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            testHarness.Modules.RemoveAll();

            classModel = new ViewTestClass(typeof(SampleViewTestClass1), "File.xap");

            moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting(sampleAssembly.FullName, "File.xap"));
            moduleModel.LoadAssembly(sampleAssembly);
            moduleModel.Classes.Add(classModel);

            testHarness.Modules.Add(moduleModel);
        }
コード例 #3
0
        public void TestInitialize()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            testHarness.Modules.RemoveAll();

            classModel = new ViewTestClass(typeof(SampleViewTestClass1), "File.xap");

            moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting(GetType().Assembly.FullName, "File.xap"));
            moduleModel.Classes.Add(classModel);
            testHarness.Modules.Add(moduleModel);

            classModel.IsCurrent = true;
            testModel = classModel.ViewTests[0];
        }
コード例 #4
0
        public void Initialize()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            testHarness.Modules.RemoveAll();

            classModel = new ViewTestClass(typeof(SampleViewTestClass1), "File.xap");

            moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting(GetType().Assembly.FullName, "File.xap"));
            moduleModel.Classes.Add(classModel);
            testHarness.Modules.Add(moduleModel);

            rootVm = new RootViewModel();
            selectorPanelVm = new SelectorPanelViewModel(rootVm);
        }
        public void ShouldLoadAssembly()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            testHarness.LoadedAssemblies.ShouldBeEmpty();

            moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting("Some Name"));

            var propArgs = new List<string>();
            moduleModel.PropertyChanged += (sender, e) => propArgs.Add(e.PropertyName);

            EventArgs startArgs = null;
            moduleModel.AssemblyLoadStarted += (sender, e) => startArgs = e;

            EventArgs completeArgs = null;
            moduleModel.AssemblyLoadComplete += (sender, e) => completeArgs = e;

            // --------------
            moduleModel.IsLoaded.ShouldBe(false);
            moduleModel.LoadAssembly(sampleAssembly);

            moduleModel.AssemblyName.ShouldBe(ReflectionUtil.GetAssemblyName(sampleAssembly.FullName));
            moduleModel.Assembly.ShouldBe(sampleAssembly);
            moduleModel.IsLoaded.ShouldBe(true);
            moduleModel.Classes.ShouldNotBeEmpty();
            testHarness.LoadedAssemblies.ShouldContain(sampleAssembly);

            propArgs.ShouldContain(LinqExtensions.GetPropertyName<T>(m => m.AssemblyName));
            propArgs.ShouldContain(LinqExtensions.GetPropertyName<T>(m => m.Assembly));
            propArgs.ShouldContain(LinqExtensions.GetPropertyName<T>(m => m.IsLoaded));
            propArgs.Clear();

            startArgs.ShouldNotBe(null);
            completeArgs.ShouldNotBe(null);

            moduleModel.LoadAssembly(sampleAssembly);
            propArgs.ShouldBeEmpty();
        }
コード例 #6
0
        public void Initialize(ModuleSelector control)
        {
            // Setup initial conditions.
            control.Width = 320;
            control.Height = 400;

             // Setup sample data.
            var model1 = new ViewTestClassesModule { DisplayName = "Recent Selections" };
            model1.Classes.Add(new ViewTestClass(typeof(ModuleSelectorViewTest), "File.xap"));
            model1.Classes.Add(new ViewTestClass(typeof(SampleViewTestClass1), "File.xap"));
            var viewModel1 = new ModuleNodeViewModel(model1);

            var model2 = new ViewTestClassesAssemblyModule(new ModuleSetting("Assembly.Name.xap"));
            model2.Classes.Add(new ViewTestClass(typeof(SampleViewTestClass1), "File.xap"));
            model2.Classes.Add(new ViewTestClass(typeof(SampleViewTestClass2), "File.xap"));
            model2.Classes.Add(new ViewTestClass(typeof(ModuleSelectorViewTest), "File.xap"));
            var viewModel2 = new ModuleNodeViewModel(model2);

            modules.Add(viewModel1);
            modules.Add(viewModel2);

            // Assign sample data to control.
            control.DataContext = modules;
        }
コード例 #7
0
 /// <summary>Loads the module with the specified name.</summary>
 /// <param name="moduleSetting">The identifying settings of the module to load.</param>
 public void AddModule(ModuleSetting moduleSetting)
 {
     var module = new ViewTestClassesAssemblyModule(moduleSetting);
     Modules.Add(module);
 }
コード例 #8
0
 /// <summary>Removes the given module from the harness (and settings).</summary>
 /// <param name="module">The module to remove.</param>
 public void RemoveModule(ViewTestClassesAssemblyModule module)
 {
     if (module == null) throw new ArgumentNullException("module");
     Modules.Remove(module);
     Settings.SyncLoadedModulesWithTestHarness();
     Settings.Save();
 }
コード例 #9
0
        public void ShouldDetermineIfAssemblyIsLoaded()
        {
            var testHarness = TestHarnessModel.Instance;
            TestHarnessModel.ResetSingleton();
            testHarness.Modules.RemoveAll();

            var assembly = GetType().Assembly;
            var module = new ViewTestClassesAssemblyModule(new ModuleSetting(assembly.FullName, "File.xap"));
            testHarness.Modules.Add(module);

            // --------

            testHarness.IsLoaded("File.xap").ShouldBe(false);
            module.LoadAssembly(assembly);
            testHarness.IsLoaded("File.xap").ShouldBe(true);

            TestHarnessModel.ResetSingleton();
        }
コード例 #10
0
        public void ShouldUpdateCurrentModuleAndClass()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;

            var args = new List<string>();
            testHarness.PropertyChanged += (sender, e) => args.Add(e.PropertyName);

            var class1 = new ViewTestClass(typeof(SampleViewTestClass1), "File.xap");
            var class2 = new ViewTestClass(typeof(SampleViewTestClass1), "File.xap");

            var module1 = new ViewTestClassesAssemblyModule(new ModuleSetting(GetType().Assembly.FullName, "File.xap"));
            var module2 = new ViewTestClassesAssemblyModule(new ModuleSetting(GetType().Assembly.FullName, "File.xap"));

            module1.Classes.Add(class1);
            module2.Classes.Add(class2);

            testHarness.Modules.Add(module1);
            testHarness.Modules.Add(module2);

            testHarness.CurrentClass.ShouldBe(null);

            // -------------

            class1.IsCurrent = true;
            testHarness.CurrentClass.ShouldBe(class1);
            args.ShouldContain(TestHarnessModel.PropCurrentClass);
            args.Clear();

            class2.IsCurrent = true;
            testHarness.CurrentClass.ShouldBe(class2);
            args.ShouldContain(TestHarnessModel.PropCurrentClass);
            args.Clear();

            class1.IsCurrent.ShouldBe(false);
            module1.CurrentClass.ShouldBe(null);

            class2.IsCurrent = false;
            testHarness.CurrentClass.ShouldBe(null);
            args.ShouldContain(TestHarnessModel.PropCurrentClass);
            args.Clear();

            TestHarnessModel.ResetSingleton();
        }
 public void ShouldRemoveXapExtensionInConstructor()
 {
     moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting(sampleAssembly.FullName, "File.xap"));
     moduleModel.XapFileName.ShouldBe("File");
 }
 public void ShouldExtractAssemblyNameInConstructor()
 {
     moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting(sampleAssembly.FullName, "File.xap"));
     moduleModel.AssemblyName.ShouldBe(ReflectionUtil.GetAssemblyName(sampleAssembly.FullName));
 }
コード例 #13
0
        public void ShouldReturnParentModule()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            testHarness.Modules.RemoveAll();

            var classModel = new ViewTestClass(typeof(SampleViewTestClass2), "File.xap");
            var moduleModel = new ViewTestClassesAssemblyModule(new ModuleSetting(typeof(SampleViewTestClass2).Assembly.FullName, "File.xap"));

            moduleModel.Classes.Add(classModel);
            testHarness.Modules.Add(moduleModel);
            testHarness.Modules.Count.ShouldBe(1);

            var retrievedModule = classModel.ParentModule;
            retrievedModule.ShouldBe(moduleModel);
        }
コード例 #14
0
        public void ShouldReload()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            var sampleType = new SampleViewTestClass1().GetType(); // NB: Instance used to get actual SL type of (instead of 'typeof' which returns native Type).

            var model1 = new ViewTestClass(sampleType.FullName, null, sampleType.Assembly.FullName, "File.xap");

            var module = new ViewTestClassesAssemblyModule(new ModuleSetting(sampleType.Assembly.FullName, "File.xap"));
            module.Classes.AddRange(new[] { model1 });
            testHarness.Modules.Add(module);
            module.CurrentClass.ShouldBe(null);

            model1.IsCurrent = true;
            testHarness.CurrentClass.ShouldBe(model1);

            var instance = (SampleViewTestClass1)model1.Instance;
            instance.MyProperty.ShouldBe(null);
            instance.MyProperty = "My Custom Value";

            model1.Reload();
            instance = (SampleViewTestClass1)model1.Instance;
            instance.MyProperty.ShouldBe(null);
        }
コード例 #15
0
        public void ShouldSetIsCurrent()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            var sampleType = new SampleViewTestClass1().GetType(); // NB: Instance used to get actual SL type of (instead of 'typeof' which returns native Type).

            var model1 = new ViewTestClass(sampleType.FullName, null, sampleType.Assembly.FullName, "File.xap");
            var model2 = new ViewTestClass(typeof(SampleViewTestClass2), "File.xap");

            var module = new ViewTestClassesAssemblyModule(new ModuleSetting(sampleType.Assembly.FullName, "File.xap"));
            module.Classes.AddRange(new []{model1, model2});
            testHarness.Modules.Add(module);
            module.CurrentClass.ShouldBe(null);

            PropertyChangedEventArgs argsModel1 = null;
            model1.PropertyChanged += (sender, e) => argsModel1 = e;

            // ----------

            model1.IsActivated.ShouldBe(false);
            model1.IsCurrent.ShouldBe(false);
            model1.IsCurrent = true;
            model1.IsCurrent.ShouldBe(true);
            testHarness.CurrentClass.ShouldBe(model1);

            argsModel1.PropertyName.ShouldBe(LinqExtensions.GetPropertyName<ViewTestClass>(m => m.IsCurrent));

            module.CurrentClass.ShouldBe(model1);

            model2.IsCurrent = true;
            model2.IsCurrent.ShouldBe(true);
            testHarness.CurrentClass.ShouldBe(model2);
            model1.IsCurrent.ShouldBe(false); // Deselected.
            module.CurrentClass.ShouldBe(model2);

            model2.IsCurrent = false;
            module.CurrentClass.ShouldBe(null);
            testHarness.CurrentClass.ShouldBe(null);
        }
コード例 #16
0
        public void ShouldDetermineIfAssemblyIsLoaded()
        {
            TestHarnessModel.ResetSingleton();
            var testHarness = TestHarnessModel.Instance;
            testHarness.Modules.Clear();

            var sampleType = new SampleViewTestClass1().GetType(); // NB: Instance used to get actual SL type of (instead of 'typeof' which returns native Type).
            var typeName = sampleType.FullName;
            var assemblyName = sampleType.Assembly.FullName;
            var model = new ViewTestClass(typeName, null, assemblyName, "File.xap");

            var module = new ViewTestClassesAssemblyModule(new ModuleSetting(assemblyName, "File.xap"));
            testHarness.Modules.Add(module);

            model.IsAssemblyLoaded.ShouldBe(false);
            module.LoadAssembly(sampleType.Assembly);
            model.IsAssemblyLoaded.ShouldBe(true);

            TestHarnessModel.ResetSingleton();
        }