コード例 #1
0
        public void ComActionRegion_Constructor_Scenerio_Result()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity()
            {
                SourceId = id
            };
            var src = new Mock <IComPluginServiceModel>();

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>());
            ComSourceRegion sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            var namespaceItem = new NamespaceItem {
                FullName = "johnny"
            };
            ComNamespaceRegion comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegion.SelectedNamespace = namespaceItem;

            //------------Execute Test---------------------------
            ComActionRegion dotNetActionRegion = new ComActionRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()), sourceRegion, comNamespaceRegion);

            //------------Assert Results-------------------------
            Assert.AreEqual(0, dotNetActionRegion.Errors.Count);
            Assert.IsTrue(dotNetActionRegion.IsEnabled);
        }
コード例 #2
0
        public void ComDllNamespaceRegion_ConstructorWithSelectedNamespace_Scenerio_Result()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity()
            {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var pluginSrc = new ComPluginSourceDefinition()
            {
                Id = id, ResourceName = "johnny"
            };
            var namespaceItem = new NamespaceItem {
                FullName = "bravo"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                pluginSrc
            });

            var sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            sourceRegion.SelectedSource = pluginSrc;

            //------------Execute Test---------------------------
            var comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegion.SelectedNamespace = namespaceItem;

            //------------Assert Results-------------------------
            Assert.AreEqual(namespaceItem, comNamespaceRegion.SelectedNamespace);
            Assert.IsTrue(comNamespaceRegion.CanRefresh());
        }
コード例 #3
0
        public void Equals_WithEquivalentNamespaces_ReturnsTrue(string first, string second)
        {
            var firstNamespace  = new NamespaceItem(first);
            var secondNamespace = new NamespaceItem(second);

            firstNamespace.Equals(secondNamespace).Should().BeTrue();
        }
コード例 #4
0
        public void HashCode_WithUnequivalentNamespaces_ReturnsFalse(string first, string second)
        {
            var firstNamespace  = new NamespaceItem(first);
            var secondNamespace = new NamespaceItem(second);

            firstNamespace.GetHashCode().Equals(secondNamespace.GetHashCode()).Should().BeFalse();
        }
コード例 #5
0
        public void PackageSourceNamespacesItemParse_WithUnrecognizedItems_UnknownItemsAreIgnored()
        {
            // Arrange
            // Arrange
            var config          = @"
<configuration>
    <packageNamespaces>
        <packageSource key=""nuget.org"">
            <namespace id=""sadas"" />
            <notANamespace id=""sadas"" />
        </packageSource>
    </packageNamespaces>
</configuration>";
            var nugetConfigPath = "NuGet.Config";

            using var mockBaseDirectory = TestDirectory.Create();
            SettingsTestUtils.CreateConfigurationFile(nugetConfigPath, mockBaseDirectory, config);

            // Act and Assert
            var settingsFile = new SettingsFile(mockBaseDirectory);
            var section      = settingsFile.GetSection("packageNamespaces");

            section.Should().NotBeNull();

            section.Items.Count.Should().Be(1);
            var packageSourceNamespaceItem = section.Items.First() as PackageNamespacesSourceItem;
            var item         = packageSourceNamespaceItem.Namespaces.First();
            var expectedItem = new NamespaceItem("sadas");

            SettingsTestUtils.DeepEquals(item, expectedItem).Should().BeTrue();
        }
コード例 #6
0
ファイル: DbgProviderItem.cs プロジェクト: zha0/DbgShell
        } // end constructor

        // TODO: a protected constructor that takes a name/path only, and finds the
        // NamespaceItem from that.


        internal static DbgProviderItem CreateDbgItem(NamespaceItem nsItem)
        {
            if (nsItem is NsContainer <DbgUModeProcess> )
            {
                return(new DbgUModeTarget((NsContainer <DbgUModeProcess>)nsItem));
            }
            else if (nsItem is NsContainer <DbgUModeThreadInfo> )
            {
                return(new DbgThreadContainer((NsContainer <DbgUModeThreadInfo>)nsItem));
            }
            else if (nsItem is NsContainer <DbgStackInfo> )
            {
                return(new DbgStackContainer((NsContainer <DbgStackInfo>)nsItem));
            }
            else if (nsItem is NsContainer <DbgStackFrameInfo> )
            {
                return(new DbgStackFrameContainer((NsContainer <DbgStackFrameInfo>)nsItem));
            }
            else if (nsItem.IsContainer)
            {
                return(new DbgContainer(nsItem));
            }
            else
            {
                return(new DbgLeafItem(nsItem));
            }
        } // end CreateDbgItem
コード例 #7
0
        public void ComActionRegion_ChangeActionSomethingChanged_RegionsNotRestored_Invalid()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var dotNetsrc = new ComPluginSourceDefinition()
            {
                Id = id
            };
            var action = new PluginAction {
                FullName = "bravo"
            };

            var s2 = new ComPluginSourceDefinition {
                Id = Guid.NewGuid()
            };
            var action1 = new PluginAction {
                FullName = "bravo1"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                dotNetsrc, s2
            });

            ComSourceRegion sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            var namespaceItem = new NamespaceItem {
                FullName = "johnny"
            };
            ComNamespaceRegion comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegion.SelectedNamespace = namespaceItem;

            //------------Execute Test---------------------------
            ComActionRegion dotNetActionRegion = new ComActionRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion, comNamespaceRegion);

            var clone1 = new Mock <IToolRegion>();
            var clone2 = new Mock <IToolRegion>();
            var dep1   = new Mock <IToolRegion>();

            dep1.Setup(a => a.CloneRegion()).Returns(clone1.Object);

            var dep2 = new Mock <IToolRegion>();

            dep2.Setup(a => a.CloneRegion()).Returns(clone2.Object);
            dotNetActionRegion.Dependants = new List <IToolRegion> {
                dep1.Object, dep2.Object
            };
            dotNetActionRegion.SelectedAction = action;
            dotNetActionRegion.SelectedAction = action1;

            //------------Assert Results-------------------------
            dep1.Verify(a => a.RestoreRegion(clone1.Object), Times.Never);
            dep2.Verify(a => a.RestoreRegion(clone2.Object), Times.Never);
        }
コード例 #8
0
        public void Execute_GivenHasContructorWithInputs_ShouldReturnCorrectInputs()
        {
            //---------------Set up test pack-------------------
            var type          = typeof(Human);
            var assembly      = type.Assembly;
            var namespaceItem = new NamespaceItem()
            {
                AssemblyLocation = assembly.Location,
                AssemblyName     = assembly.FullName,
                FullName         = type.FullName,
            };
            var pluginSource = new PluginSource()
            {
                AssemblyName     = type.AssemblyQualifiedName,
                AssemblyLocation = assembly.Location,
            };

            var pluginSourceDefinition = new PluginSourceDefinition();
            var serializeToJson        = pluginSourceDefinition.SerializeToJsonStringBuilder();
            var nameSpace   = namespaceItem.SerializeToJsonStringBuilder();
            var resourceCat = new Mock <IResourceCatalog>();

            resourceCat.Setup(catalog => catalog.GetResource <PluginSource>(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .Returns(pluginSource);
            var FetchPluginConstructors = new FetchPluginConstructors(resourceCat.Object);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var mock          = new Mock <IWorkspace>();
            var stringBuilder = FetchPluginConstructors.Execute(new Dictionary <string, StringBuilder>()
            {
                { "source", serializeToJson },
                { "namespace", nameSpace },
            },
                                                                mock.Object);
            //---------------Test Result -----------------------
            var executeMessage      = stringBuilder.DeserializeToObject <ExecuteMessage>();
            var deserializeToObject = executeMessage.Message.DeserializeToObject <List <IPluginConstructor> >();

            Assert.AreEqual(3, deserializeToObject.Count);

            var pluginConstructor = deserializeToObject[1];
            var count             = pluginConstructor.Inputs.Count;

            Assert.AreEqual(1, count);
            var serviceInput  = pluginConstructor.Inputs[0];
            var name          = serviceInput.Name;
            var emptyIsNull   = serviceInput.EmptyToNull;
            var requiredField = serviceInput.IsRequired;
            var value         = serviceInput.Value;
            var typeName      = serviceInput.TypeName;

            Assert.AreEqual("name", name);
            Assert.AreEqual(false, emptyIsNull);
            Assert.AreEqual(true, requiredField);
            Assert.IsTrue(string.IsNullOrEmpty(value));
            Assert.AreEqual(typeof(string), Type.GetType(typeName));
        }
コード例 #9
0
        public void Execute_GivenHasContructorWithInputs_ShouldReturnCorrectConstructorName()
        {
            //---------------Set up test pack-------------------
            var type          = typeof(Human);
            var assembly      = type.Assembly;
            var namespaceItem = new NamespaceItem()
            {
                AssemblyLocation = assembly.Location,
                AssemblyName     = assembly.FullName,
                FullName         = type.FullName,
            };
            var pluginSource = new PluginSource()
            {
                AssemblyName     = type.AssemblyQualifiedName,
                AssemblyLocation = assembly.Location,
            };

            var pluginSourceDefinition = new PluginSourceDefinition();
            var serializeToJson        = pluginSourceDefinition.SerializeToJsonStringBuilder();
            var nameSpace   = namespaceItem.SerializeToJsonStringBuilder();
            var resourceCat = new Mock <IResourceCatalog>();

            resourceCat.Setup(catalog => catalog.GetResource <PluginSource>(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .Returns(pluginSource);
            var FetchPluginConstructors = new FetchPluginConstructors(resourceCat.Object);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var mock          = new Mock <IWorkspace>();
            var stringBuilder = FetchPluginConstructors.Execute(new Dictionary <string, StringBuilder>()
            {
                { "source", serializeToJson },
                { "namespace", nameSpace },
            },
                                                                mock.Object);
            //---------------Test Result -----------------------
            var executeMessage      = stringBuilder.DeserializeToObject <ExecuteMessage>();
            var deserializeToObject = executeMessage.Message.DeserializeToObject <List <IPluginConstructor> >();

            Assert.AreEqual(3, deserializeToObject.Count);

            var          pluginConstructor1 = deserializeToObject[1];
            var          constructorName1   = pluginConstructor1.ConstructorName;
            const string expectedName1      = ".ctor (System.String)";

            Assert.AreEqual(expectedName1, constructorName1);

            var          pluginConstructor0 = deserializeToObject[0];
            var          constructorName0   = pluginConstructor0.ConstructorName;
            const string expectedName0      = ".ctor ";

            Assert.AreEqual(expectedName0, constructorName0);
            var          pluginConstructor2 = deserializeToObject[2];
            var          constructorName2   = pluginConstructor2.ConstructorName;
            const string expectedName2      = ".ctor (System.String,System.String,TestingDotnetDllCascading.Food)";

            Assert.AreEqual(expectedName2, constructorName2);
        }
コード例 #10
0
        public void ToStringTest()
        {
            var exp            = "System.Collections.Generic.Dictionary<K, V>";
            var namespaceItem  = GetNamespaceItemFromString();
            var namespaceItem2 = new NamespaceItem();

            Assert.AreEqual(exp, namespaceItem.ToString());
            Assert.AreEqual(string.Empty, namespaceItem2.ToString());
        }
コード例 #11
0
ファイル: DbgProviderItem.cs プロジェクト: zha0/DbgShell
 internal DbgLeafItem(NamespaceItem nsItem)
     : base(nsItem)
 {
     if (nsItem.IsContainer)
     {
         Util.Fail("A container should not be represented by a leaf.");
         throw new ArgumentException("The specified item is a container, not a leaf.", "nsItem");
     }
 } // end constructor
コード例 #12
0
ファイル: DbgProviderItem.cs プロジェクト: zha0/DbgShell
        } // end property Parent

        //  /// <summary>
        //  ///    Indicates if the item can hold child items or not.
        //  /// </summary>
        //  public bool IsContainer { get { return NsItem.IsContainer; } }

        internal DbgProviderItem(NamespaceItem nsItem)
        {
            if (null == nsItem)
            {
                throw new ArgumentNullException("nsItem");
            }

            NsItem = nsItem;
        } // end constructor
コード例 #13
0
        public void Execute_GivenSourceAndNamespaceWithActionsTakingObject_ShouldObjectParameters()
        {
            var humanType = typeof(Human);
            //------------Setup for test--------------------------
            var pluginSource = new PluginSource
            {
                ResourceName     = humanType.FullName,
                ResourceID       = humanType.GUID,
                AssemblyName     = humanType.AssemblyQualifiedName,
                AssemblyLocation = humanType.Assembly.Location
            };

            var resourceCat = new Mock <IResourceCatalog>();

            resourceCat.Setup(catalog => catalog.GetResource <PluginSource>(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .Returns(pluginSource);
            var fetchPluginActionsWithReturnsTypes = new FetchPluginActionsWithReturnsTypes(resourceCat.Object);

            var jsonSerializer   = new Dev2JsonSerializer();
            var sourceDefinition = new PluginSourceDefinition
            {
                Id = humanType.GUID, Name = humanType.FullName, Path = humanType.Assembly.Location
            };
            var namespaceItem = new NamespaceItem
            {
                FullName         = humanType.FullName,
                AssemblyLocation = humanType.Assembly.Location,
                AssemblyName     = humanType.Assembly.FullName
            };

            var serialezedSource    = jsonSerializer.SerializeToBuilder(sourceDefinition);
            var serialezedNamespace = jsonSerializer.SerializeToBuilder(namespaceItem);
            var values = new Dictionary <string, StringBuilder>
            {
                { "source", serialezedSource },
                { "namespace", serialezedNamespace }
            };
            var workspace = new Mock <IWorkspace>();
            var execute   = fetchPluginActionsWithReturnsTypes.Execute(values, workspace.Object);
            var results   = jsonSerializer.Deserialize <ExecuteMessage>(execute);

            //------------Assert Results-------------------------
            Assert.IsFalse(results.HasError);
            var pluginActions = jsonSerializer.Deserialize <List <IPluginAction> >(results.Message);

            Assert.IsTrue(pluginActions.Any(action => action.IsVoid));
            IEnumerable <IList <IServiceInput> > parameters = pluginActions.Select(action => action.Inputs);
            var enumerable = parameters as IList <IServiceInput>[] ?? parameters.ToArray();
            var containsObjectParameters = enumerable.Any(list => list.Any(input => input.IsObject));
            var shortTypeName            = enumerable.All(list => list.All(input => !string.IsNullOrEmpty(input.ShortTypeName)));
            var dev2ReturnType           = enumerable.All(list => list.All(input => !string.IsNullOrEmpty(input.Dev2ReturnType)));

            Assert.IsTrue(containsObjectParameters);
            Assert.IsTrue(shortTypeName);
            Assert.IsTrue(dev2ReturnType);
        }
コード例 #14
0
        public void GetParentNamespaceTest()
        {
            var exp           = new NamespaceItem("System.Collections.Generic");
            var namespaceItem = GetNamespaceItemFromString();
            var parent        = namespaceItem.GetParentNamespace();
            var parent2       = new NamespaceItem().GetParentNamespace();

            Assert.AreEqual(exp, parent);
            Assert.AreEqual(null, parent2);
        }
コード例 #15
0
        public void GetNamespaceWithoutFirstTest()
        {
            var exp           = new NamespaceItem("Collections.Generic.Dictionary<K, V>");
            var namespaceItem = GetNamespaceItemFromString();
            var parent        = namespaceItem.GetNamespaceWithoutFirst();
            var parent2       = new NamespaceItem().GetNamespaceWithoutFirst();

            Assert.AreEqual(exp, parent);
            Assert.AreEqual(null, parent2);
        }
コード例 #16
0
        public void GetFirstNameTest()
        {
            var exp           = "System";
            var namespaceItem = GetNamespaceItemFromString();
            var first         = namespaceItem.GetFirstName();
            var first2        = new NamespaceItem().GetFirstName();

            Assert.AreEqual(exp, first);
            Assert.AreEqual(null, first2);
        }
コード例 #17
0
        public void GetLastNameTest()
        {
            var exp           = "Dictionary<K, V>";
            var namespaceItem = GetNamespaceItemFromString();
            var last          = namespaceItem.GetLastName();
            var last2         = new NamespaceItem().GetLastName();

            Assert.AreEqual(exp, last);
            Assert.AreEqual(null, last2);
        }
コード例 #18
0
        public void Clone_CreatesEquivalentObjects(string namespaceName)
        {
            var original = new NamespaceItem(namespaceName);
            var clone    = original.Clone() as NamespaceItem;

            original.Equals(clone).Should().BeTrue();
            original.GetHashCode().Equals(clone.GetHashCode()).Should().BeTrue();
            SettingsTestUtils.DeepEquals(original, clone).Should().BeTrue();
            ReferenceEquals(original, clone).Should().BeFalse();
            original.Id.Equals(clone.Id);
        }
コード例 #19
0
        public void ComNamespaceRegion_ChangeNamespaceSomethingChanged_RestoreRegion_Result()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity()
            {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var pluginSrc = new ComPluginSourceDefinition()
            {
                Id = id, ResourceName = "bob"
            };
            var namespaceItem = new NamespaceItem {
                FullName = "bravo"
            };

            var s2 = new ComPluginSourceDefinition()
            {
                Id = Guid.NewGuid(), ResourceName = "bob"
            };
            var namespaceItem1 = new NamespaceItem {
                FullName = "bravo"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                pluginSrc, s2
            });

            var sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            //------------Execute Test---------------------------
            var comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            var clone1 = new Mock <IToolRegion>();
            var clone2 = new Mock <IToolRegion>();
            var dep1   = new Mock <IToolRegion>();

            dep1.Setup(a => a.CloneRegion()).Returns(clone1.Object);

            var dep2 = new Mock <IToolRegion>();

            dep2.Setup(a => a.CloneRegion()).Returns(clone2.Object);
            comNamespaceRegion.Dependants = new List <IToolRegion> {
                dep1.Object, dep2.Object
            };
            comNamespaceRegion.SelectedNamespace = namespaceItem;
            comNamespaceRegion.SelectedNamespace = namespaceItem1;

            //------------Assert Results-------------------------
            dep1.Verify(a => a.RestoreRegion(clone1.Object), Times.Never);
            dep2.Verify(a => a.RestoreRegion(clone2.Object), Times.Never);
        }
コード例 #20
0
        public void Execute_GivenSourceAndNamespaceWithStringActions_ShouldReturnAStringFunction()
        {
            var humanType = typeof(Human);
            //------------Setup for test--------------------------
            var pluginSource = new PluginSource
            {
                ResourceName     = humanType.FullName,
                ResourceID       = humanType.GUID,
                AssemblyName     = humanType.AssemblyQualifiedName,
                AssemblyLocation = humanType.Assembly.Location
            };

            var resourceCat = new Mock <IResourceCatalog>();

            resourceCat.Setup(catalog => catalog.GetResource <PluginSource>(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .Returns(pluginSource);
            var fetchPluginActionsWithReturnsTypes = new FetchPluginActionsWithReturnsTypes(resourceCat.Object);

            var jsonSerializer   = new Dev2JsonSerializer();
            var sourceDefinition = new PluginSourceDefinition
            {
                Id = humanType.GUID, Name = humanType.FullName, Path = humanType.Assembly.Location
            };
            var namespaceItem = new NamespaceItem
            {
                FullName         = humanType.FullName,
                AssemblyLocation = humanType.Assembly.Location,
                AssemblyName     = humanType.Assembly.FullName
            };

            var serialezedSource    = jsonSerializer.SerializeToBuilder(sourceDefinition);
            var serialezedNamespace = jsonSerializer.SerializeToBuilder(namespaceItem);
            var values = new Dictionary <string, StringBuilder>
            {
                { "source", serialezedSource },
                { "namespace", serialezedNamespace }
            };
            var workspace = new Mock <IWorkspace>();
            var execute   = fetchPluginActionsWithReturnsTypes.Execute(values, workspace.Object);
            var results   = jsonSerializer.Deserialize <ExecuteMessage>(execute);

            //------------Assert Results-------------------------
            Assert.IsFalse(results.HasError);
            var pluginActions = jsonSerializer.Deserialize <List <IPluginAction> >(results.Message);

            Assert.IsTrue(pluginActions.Any(action => action.IsVoid));
            var any = pluginActions.Any(action => action.Dev2ReturnType.Equals("return: String"));

            Assert.IsTrue(any);
        }
コード例 #21
0
        internal NamespaceItem GetNamespace(Namespace ns)
        {
            var fullName = ns.ToString();

            NamespaceItem result;

            if (!Namespaces.TryGetValue(fullName, out result))
            {
                result = new NamespaceItem(ns);
                Namespaces.Add(fullName, result);
                AddChild(result);
            }

            return(result);
        }
コード例 #22
0
        public void ComActionRegion_ChangeActionSomethingChanged_RestoreRegion_ExpectedRestore()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var dotNetsrc = new ComPluginSourceDefinition {
                Id = id
            };
            var s2 = new ComPluginSourceDefinition {
                Id = Guid.NewGuid()
            };
            var action = new PluginAction {
                FullName = "bravo"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                dotNetsrc, s2
            });

            ComSourceRegion sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            var namespaceItem = new NamespaceItem {
                FullName = "johnny"
            };
            ComNamespaceRegion comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegion.SelectedNamespace = namespaceItem;

            //------------Execute Test---------------------------
            ComActionRegion dotNetActionRegion = new ComActionRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion, comNamespaceRegion);
            // ReSharper disable once UseObjectOrCollectionInitializer
            ComActionRegion dotNetActionRegionToRestore = new ComActionRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion, comNamespaceRegion);

            dotNetActionRegionToRestore.IsEnabled      = false;
            dotNetActionRegionToRestore.SelectedAction = action;

            dotNetActionRegion.RestoreRegion(dotNetActionRegionToRestore);

            //------------Assert Results-------------------------
            Assert.AreEqual(dotNetActionRegion.SelectedAction, action);
            Assert.IsFalse(dotNetActionRegion.IsEnabled);
        }
コード例 #23
0
        public void Update_UpdatesKeyCorrectly()
        {
            // Arrange
            var config          = @"
<configuration>
    <packageNamespaces>
        <packageSource key=""nuget.org"">
            <namespace id=""original"" />
        </packageSource>
    </packageNamespaces>
</configuration>";
            var nugetConfigPath = "NuGet.Config";

            using var mockBaseDirectory = TestDirectory.Create();
            SettingsTestUtils.CreateConfigurationFile(nugetConfigPath, mockBaseDirectory, config);

            // Act and Assert
            var settingsFile = new SettingsFile(mockBaseDirectory);

            settingsFile.TryGetSection("packageNamespaces", out var section).Should().BeTrue();
            section.Should().NotBeNull();

            section.Items.Count.Should().Be(1);
            var packageSourceNamespacesItem = section.Items.First() as PackageNamespacesSourceItem;
            var updatedItem = new NamespaceItem("updated");

            packageSourceNamespacesItem.Namespaces.First().Update(updatedItem);
            SettingsTestUtils.DeepEquals(packageSourceNamespacesItem.Namespaces.First(), updatedItem).Should().BeTrue();

            settingsFile.SaveToDisk();

            // Assert
            var result = @"<?xml version=""1.0"" encoding=""utf-8""?>
<configuration>
    <packageNamespaces>
        <packageSource key=""nuget.org"">
            <namespace id=""updated"" />
        </packageSource>
    </packageNamespaces>
</configuration>";

            result.Replace("\r\n", "\n")
            .Should().BeEquivalentTo(
                File.ReadAllText(Path.Combine(mockBaseDirectory, nugetConfigPath)).Replace("\r\n", "\n"));
        }
コード例 #24
0
        public void ComActionRegion_ConstructorWithSelectedAction_Scenerio_Result()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var dotNetsrc = new ComPluginSourceDefinition {
                Id = id, ResourceName = "johnny"
            };
            var action = new PluginAction {
                FullName = "bravo", Method = "bravo", ReturnType = typeof(string), Variables = new List <INameValue>()
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                dotNetsrc
            });

            ComSourceRegion sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            sourceRegion.SelectedSource = dotNetsrc;

            var namespaceItem = new NamespaceItem {
                FullName = "johnny"
            };
            ComNamespaceRegion comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegion.SelectedNamespace = namespaceItem;

            //------------Execute Test---------------------------
            ComActionRegion dotNetActionRegion = new ComActionRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion, comNamespaceRegion);

            dotNetActionRegion.SelectedAction = action;

            //------------Assert Results-------------------------
            Assert.AreEqual(action, dotNetActionRegion.SelectedAction);
            Assert.AreEqual(action.FullName, dotNetActionRegion.SelectedAction.FullName);
            Assert.AreEqual(action.Method, dotNetActionRegion.SelectedAction.Method);
            Assert.AreEqual(typeof(string), dotNetActionRegion.SelectedAction.ReturnType);
            Assert.AreEqual(0, dotNetActionRegion.SelectedAction.Variables.Count);
            Assert.IsTrue(dotNetActionRegion.CanRefresh());
        }
コード例 #25
0
        public void ComActionRegion_ChangeActionSomethingChanged_ExpectedChange_Result()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var dotNetsrc = new ComPluginSourceDefinition {
                Id = id
            };
            var evt = false;
            var s2  = new ComPluginSourceDefinition()
            {
                Id = Guid.NewGuid()
            };
            var action = new PluginAction {
                FullName = "bravo"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                dotNetsrc, s2
            });

            ComSourceRegion sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            var namespaceItem = new NamespaceItem {
                FullName = "johnny"
            };
            ComNamespaceRegion comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegion.SelectedNamespace = namespaceItem;

            //------------Execute Test---------------------------
            ComActionRegion dotNetActionRegion = new ComActionRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion, comNamespaceRegion);

            dotNetActionRegion.SomethingChanged += (a, b) => { evt = true; };
            dotNetActionRegion.SelectedAction    = action;

            //------------Assert Results-------------------------
            Assert.IsTrue(evt);
        }
コード例 #26
0
        public void ComNamespaceRegion_ChangeNamespaceSomethingChanged_RestoreRegion_ExpectedRestore()
        {
            //------------Setup for test--------------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity()
            {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var pluginSrc = new ComPluginSourceDefinition()
            {
                Id = id
            };
            var s2 = new ComPluginSourceDefinition()
            {
                Id = Guid.NewGuid()
            };
            var namespaceItem = new NamespaceItem {
                FullName = "bravo"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                pluginSrc, s2
            });

            var sourceRegion = new ComSourceRegion(src.Object, ModelItemUtils.CreateModelItem(new DsfComDllActivity()));

            //------------Execute Test---------------------------
            var comNamespaceRegion = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            var comNamespaceRegionToRestore = new ComNamespaceRegion(src.Object, ModelItemUtils.CreateModelItem(act), sourceRegion);

            comNamespaceRegionToRestore.IsEnabled         = false;
            comNamespaceRegionToRestore.SelectedNamespace = namespaceItem;

            comNamespaceRegion.RestoreRegion(comNamespaceRegionToRestore);

            //------------Assert Results-------------------------
            Assert.AreEqual(comNamespaceRegion.SelectedNamespace, namespaceItem);
            Assert.IsFalse(comNamespaceRegion.IsEnabled);
        }
コード例 #27
0
        public void Execute_GivenTestInputs_ShouldReturnConstructorList()
        {
            //---------------Set up test pack-------------------
            var type          = typeof(Human);
            var assembly      = type.Assembly;
            var namespaceItem = new NamespaceItem()
            {
                AssemblyLocation = assembly.Location,
                AssemblyName     = assembly.FullName,
                FullName         = type.FullName,
            };
            var pluginSource = new PluginSource()
            {
                AssemblyName     = type.AssemblyQualifiedName,
                AssemblyLocation = assembly.Location,
            };

            var pluginSourceDefinition = new PluginSourceDefinition();
            var serializeToJson        = pluginSourceDefinition.SerializeToJsonStringBuilder();
            var nameSpace   = namespaceItem.SerializeToJsonStringBuilder();
            var resourceCat = new Mock <IResourceCatalog>();

            resourceCat.Setup(catalog => catalog.GetResource <PluginSource>(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .Returns(pluginSource);
            var FetchPluginConstructors = new FetchPluginConstructors(resourceCat.Object);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var mock          = new Mock <IWorkspace>();
            var stringBuilder = FetchPluginConstructors.Execute(new Dictionary <string, StringBuilder>()
            {
                { "source", serializeToJson },
                { "namespace", nameSpace },
            },
                                                                mock.Object);
            //---------------Test Result -----------------------
            var executeMessage      = stringBuilder.DeserializeToObject <ExecuteMessage>();
            var deserializeToObject = executeMessage.Message.DeserializeToObject <List <IPluginConstructor> >();

            Assert.AreEqual(3, deserializeToObject.Count);
        }
コード例 #28
0
        /// <summary>
        /// Creates the csharp code
        /// </summary>
        /// <param name="namespaceItem">The namespace</param>
        /// <param name="classItem">The class</param>
        /// <param name="properties">The selected properties</param>
        /// <returns>The generated code</returns>
        public static string CreateCSharpCode(NamespaceItem namespaceItem, ClassItem classItem,
                                              List <PropertyItem> properties)
        {
            var template = LoadTemplate();

            if (string.IsNullOrEmpty(template))
            {
                return("");
            }

            // Step 1: Replace the namespace
            template = template.Replace("{NAMESPACE}", namespaceItem.Name.Replace("\\", "\\\\"));
            // Step 2: Replace the query
            template = template.Replace("{QUERY}", $"SELECT * FROM {classItem.Name}");
            // Step 3: Replace the class name
            template = template.Replace("{CLASS}", classItem.Name);
            // Step 4: Create the properties
            template = template.Replace("{PROPERTY}", CreateProperties(properties));

            return(template);
        }
コード例 #29
0
        public void GetNamespaces_GivenHasError_ShouldAddIntoErrors()
        {
            //---------------Set up test pack-------------------
            var id  = Guid.NewGuid();
            var act = new DsfComDllActivity()
            {
                SourceId = id
            };
            var src       = new Mock <IComPluginServiceModel>();
            var pluginSrc = new ComPluginSourceDefinition()
            {
                Id = id
            };
            var s2 = new ComPluginSourceDefinition()
            {
                Id = Guid.NewGuid()
            };
            var namespaceItem = new NamespaceItem {
                FullName = "bravo"
            };

            src.Setup(a => a.RetrieveSources()).Returns(new ObservableCollection <IComPluginSource>()
            {
                pluginSrc, s2
            });
            src.Setup(a => a.GetNameSpaces(It.IsAny <IComPluginSource>())).Throws(new BadImageFormatException());

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var modelItem          = ModelItemUtils.CreateModelItem(new DsfComDllActivity());
            var dotNetSourceRegion = new ComSourceRegion(src.Object, modelItem);
            var mockPluginSource   = new Mock <IComPluginSource>();

            dotNetSourceRegion.SelectedSource = mockPluginSource.Object;
            var sourceRegion = new ComNamespaceRegion(src.Object, modelItem, dotNetSourceRegion);

            //---------------Test Result -----------------------
            Assert.AreEqual(sourceRegion.Errors.Count, 1);
            Assert.AreEqual(sourceRegion.Errors.Count(s => s.Contains("Format of the executable (.exe) or library (.dll) is invalid")), 1);
        }
コード例 #30
0
        public void Execute_GivenHasError_ShouldReturnErrorState()
        {
            //---------------Set up test pack-------------------
            var type          = typeof(Human);
            var assembly      = type.Assembly;
            var namespaceItem = new NamespaceItem()
            {
                AssemblyLocation = assembly.Location,
                AssemblyName     = assembly.FullName,
                FullName         = type.FullName,
            };


            var pluginSourceDefinition = new PluginSourceDefinition();
            var serializeToJson        = pluginSourceDefinition.SerializeToJsonStringBuilder();
            var nameSpace   = namespaceItem.SerializeToJsonStringBuilder();
            var resourceCat = new Mock <IResourceCatalog>();

            resourceCat.Setup(catalog => catalog.GetResource <PluginSource>(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .Throws(new Exception("error"));
            var FetchPluginConstructors = new FetchPluginConstructors(resourceCat.Object);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var mock          = new Mock <IWorkspace>();
            var stringBuilder = FetchPluginConstructors.Execute(new Dictionary <string, StringBuilder>()
            {
                { "source", serializeToJson },
                { "namespace", nameSpace },
            },
                                                                mock.Object);
            //---------------Test Result -----------------------
            var executeMessage = stringBuilder.DeserializeToObject <ExecuteMessage>();

            Assert.IsTrue(executeMessage.HasError);
            Assert.AreEqual("error", executeMessage.Message.ToString());
        }
コード例 #31
0
        private void ReflectAssembly(AssemblyItem assemblyItem, Assembly asm, bool invert)
        {
            string ns;
            NamespaceItem nsItem;
            Dictionary<string, NamespaceItem> nsItems = new Dictionary<string, NamespaceItem>();

            // Add the assembly item itself to the lookup.
            _projectBrowser.AddLookup(assemblyItem, assemblyItem.GetID(), invert);

            try
            {
                Type[] types = asm.GetTypes();
            }
            catch (ReflectionTypeLoadException exc)
            {
                _logView.LogExcStr(exc, "Failed to call GetTypes on " + asm.FullName);
                return;
            }

            foreach (Type t in asm.GetTypes())
            {
                ns = t.Namespace;
                if (string.IsNullOrEmpty(ns)) ns = "(none)";

                if (!nsItems.ContainsKey(ns))
                {
                    nsItem = new NamespaceItem(ns, assemblyItem);
                    nsItems.Add(ns, nsItem);
                    assemblyItem.NameSpaces.Add(nsItem);
                    _projectBrowser.AddLookup(nsItem, nsItem.GetID(), invert);
                }
                else
                {
                    nsItem = nsItems[ns];
                }

                // Flatten nested types.
                string name = t.Name;
                if (t.IsNested)
                {
                    // Flat with .id'd name.
                    Type parentType = t.DeclaringType;
                    while (parentType != null)
                    {
                        name = parentType.Name + "." + name;
                        parentType = parentType.DeclaringType;
                    }
                }

                try
                {
                    TypeItem typeItem = new TypeItem(name, t.FullName, t, nsItem);

                    nsItem.Types.Add(typeItem);
                    _projectBrowser.AddLookup(typeItem, typeItem.GetID(), invert);

                    foreach (MethodInfo mi in GetMethods(typeItem))
                    {
                        MethodItem methodItem = new MethodItem(mi.Name, mi, typeItem);
                        typeItem.Methods.Add(methodItem);

                        _projectBrowser.AddLookup(methodItem, methodItem.GetID(), invert);
                    }

                    // Get the list of implemented interfaces.
                    typeItem.Implements = GetImplementedInterfaces(typeItem);

                    if (typeItem.TypeRef.BaseType != null)
                    {
                        typeItem.InheritsFrom = typeItem.TypeRef.BaseType.ToString();
                    }
                    else
                    {
                        typeItem.InheritsFrom = null;
                    }
                }
                catch (Exception exc)
                {
                    _logView.LogExcStr(exc, "Generic Types issue?");
                }

            }
        }