Example #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="TypeLocator"/> class
        /// with a default <see cref="NamespaceReader"/> and
        /// set of <see cref="IElementNameReader"/> implementations.
        /// </summary>
        public TypeLocator()
        {
            _namespaceReader = new NamespaceNameReader();

            _elementNameReaders = new List <IElementNameReader>();
            _elementNameReaders.Add(new ClassNameReader());
        }
Example #2
0
        // [rgn] Private Methods (2)

        private IElementNameReader CreateElementNameReaderMock(string willAccept, IList <string> willReturn)
        {
            IElementNameReader mockedNamespaceReader = _mockRepository.CreateMock <IElementNameReader>();

            Expect
            .On(mockedNamespaceReader)
            .Call(mockedNamespaceReader.RetrieveNames(willAccept))
            .Return(willReturn);
            return(mockedNamespaceReader);
        }
Example #3
0
        private IElementNameReader CreateElementNameReaderMock(string code, IList <string> returnedNames)
        {
            IElementNameReader mockedNamespaceReader = _mockRepository.CreateMock <IElementNameReader>();

            Expect
            .On(mockedNamespaceReader)
            .Call(mockedNamespaceReader.RetrieveNames(code))
            .Return(returnedNames);
            return(mockedNamespaceReader);
        }
Example #4
0
        public void ThrowsOnMultipleNamespaces()
        {
            string code = "Namespace MyNamespace1 { public class MyClass1 {} } Namespace MyNamespace2 { public class MyClass2 {} }";

            // Mock a IElementNameReader that will act as the namespace reader.
            IElementNameReader mockedNamespaceReader = CreateElementNameReaderMock(code, new string[] { "MyNamespace1", "MyNamespace2" });

            // Mock a IElementNameReader that will provide names for the TypeLocator.
            // We do not use the CreateElementNameReaderMock since no expectations are neccesary.
            IElementNameReader mockedElementNameReader = _mockRepository.CreateMock <IElementNameReader>();

            _mockRepository.ReplayAll();

            TypeLocator typeLocator = new TypeLocator(mockedNamespaceReader, new IElementNameReader[] { mockedElementNameReader });
            string      path        = WriteTemporaryFile(code);

            IList <string> typeNames = typeLocator.GetTypeNames(path);
        }
Example #5
0
        public void DoesNotLocateTypesInEmptyFile()
        {
            string code = string.Empty;

            // Mock a IElementNameReader that will act as the namespace reader.
            IElementNameReader mockedNamespaceReader = CreateElementNameReaderMock(code, new string[] { string.Empty });

            // Mock a IElementNameReader that will provide names for the TypeLocator.
            // We do not use the CreateElementNameReaderMock since no expectations are neccesary.
            IElementNameReader mockedElementNameReader = _mockRepository.CreateMock <IElementNameReader>();

            TypeLocator typeLocator = new TypeLocator(mockedNamespaceReader, new IElementNameReader[] { mockedElementNameReader });

            string path = WriteTemporaryFile(code);

            IList <string> typeNames = typeLocator.GetTypeNames(path);

            Assert.AreEqual(0, typeNames.Count);
        }
Example #6
0
        public void FindsSingleType()
        {
            string code = "Namespace MyNamespace { public class MyClass {} }";

            // Mock a IElementNameReader that will act as the namespace reader.
            IElementNameReader mockedNamespaceReader = CreateElementNameReaderMock(code, new string[] { "MyNamespace" });

            // Mock a IElementNameReader that will provide names for the TypeLocator.
            IElementNameReader mockedElementNameReader = CreateElementNameReaderMock(code, new string[] { "MyClass" });

            _mockRepository.ReplayAll();

            TypeLocator typeLocator = new TypeLocator(mockedNamespaceReader, new IElementNameReader[] { mockedElementNameReader });
            string      path        = WriteTemporaryFile(code);

            IList <string> typeNames = typeLocator.GetTypeNames(path);

            Assert.AreEqual(1, typeNames.Count);
            Assert.AreEqual("MyNamespace.MyClass", typeNames[0]);
        }
 public void Initialize()
 {
     _namespaceNameReader = new NamespaceNameReader();
 }
Example #8
0
 public void Initialize()
 {
     _classNameReader = new ClassNameReader();
 }
Example #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TypeLocator"/> class
 /// with a specific set of <see cref="IElementNameReader"/>.
 /// </summary>
 /// <param name="namespaceReader">The element reader which will be
 /// used to identify namespaces inside the code.</param>
 /// <param name="elementNameReaders">A list of objects which will be used
 /// to retrieve types from the code files.</param>
 public TypeLocator(IElementNameReader namespaceReader, IList <IElementNameReader> elementNameReaders)
 {
     _namespaceReader    = namespaceReader;
     _elementNameReaders = elementNameReaders;
 }