/// <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()); }
// [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); }
private IElementNameReader CreateElementNameReaderMock(string code, IList <string> returnedNames) { IElementNameReader mockedNamespaceReader = _mockRepository.CreateMock <IElementNameReader>(); Expect .On(mockedNamespaceReader) .Call(mockedNamespaceReader.RetrieveNames(code)) .Return(returnedNames); return(mockedNamespaceReader); }
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); }
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); }
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(); }
public void Initialize() { _classNameReader = new ClassNameReader(); }
/// <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; }