static void Main() { Console.WriteLine("This program parses an URL address given in the format:"); Console.WriteLine("[protocol]://[server]/[resource]"); Console.Write("\nPlease enter URL address to be parsed: "); string input = Console.ReadLine(); URLAddress currentAddress = ParseAddress(input); Console.WriteLine("\n[protocol] = \"{0}\"", currentAddress.protocol); Console.WriteLine("[server] = \"{0}\"", currentAddress.server); Console.WriteLine("[resource] = \"{0}\"\n", currentAddress.resource); }
private static URLAddress ParseAddress(string input) { URLAddress url = new URLAddress(); string[] parsedAddress = input.Split(':'); url.protocol = parsedAddress[0]; parsedAddress[1] = parsedAddress[1].Substring(2); int separator = parsedAddress[1].IndexOf('/'); if (separator != -1) { url.server = parsedAddress[1].Substring(0, separator); url.resource = parsedAddress[1].Substring(separator).Trim(); } else { url.server = parsedAddress[1]; } return url; }
private static URLAddress ParseAddress(string input) { URLAddress url = new URLAddress(); string[] parsedAddress = input.Split(':'); url.protocol = parsedAddress[0]; parsedAddress[1] = parsedAddress[1].Substring(2); int separator = parsedAddress[1].IndexOf('/'); if (separator != -1) { url.server = parsedAddress[1].Substring(0, separator); url.resource = parsedAddress[1].Substring(separator).Trim(); } else { url.server = parsedAddress[1]; } return(url); }
public void Proccess_Calls_Retriever_Persister_Serializer_Deserializer() { var stringList = new List <string>() { "https://habrahabr.ru/company/it-grad/blog/341486/", "https://github.com/AnzhelikaKravchuk/2017-2018.MMF.BSU" }; URLAddress firstUrlAddress = new URLAddress("habrahabr.ru", new List <string> { "company", "it-grad", "blog", "341486" }); URLAddress secondUrlAddress = new URLAddress("github.com", new List <string> { "AnzhelikaKravchuk", "2017-2018.MMF.BSU" }); mockForDataPersister.Setup(s => s.Save(It.IsAny <XDocument>())); mockForDataRetriever.Setup(s => s.Load()).Returns(stringList); var urlAddresses = new List <URLAddress>() { firstUrlAddress, secondUrlAddress }; mockForStringToUrlAddressesTransformer.Setup(s => s.Transform(stringList)).Returns(urlAddresses); mockForParser.Setup(s => s.Transform(It.IsAny <string>())); mockForValidator.Setup(s => s.IsValid(It.IsAny <string>())); mockForUrlAddressesToXDocumentTransformer.Setup(s => s.Transform(urlAddresses)); mockForLogger.Setup(s => s.Error(It.IsAny <string>())); var service = new XmlDocumentService(mockForDataPersister.Object, mockForDataRetriever.Object, mockForStringToUrlAddressesTransformer.Object, mockForUrlAddressesToXDocumentTransformer.Object); service.Process(); mockForDataRetriever.Verify(s => s.Load(), Times.Once); mockForStringToUrlAddressesTransformer.Verify(s => s.Transform(stringList), Times.Once); mockForUrlAddressesToXDocumentTransformer.Verify(s => s.Transform(urlAddresses), Times.Once); mockForDataPersister.Verify(s => s.Save(It.IsAny <XDocument>()), Times.Once); }