public bool IsValidPortForCategory(int categoryCode, string reportingPort, string associatedPort, bool?InBound) { var allowedCat = true; switch (categoryCode) { case 12: { allowedCat = _portFreightContext.PortCargoOil.AsQueryable().AsNoTracking() .Where(a => a.Locode == _helperService.GetPortCodeByPort(reportingPort)) .Select(a => a.AllowCategory12).SingleOrDefault(); } break; case 13: { if (InBound == true) { var gbPort = _helperService.GetCountryCodeByPort(associatedPort); allowedCat = gbPort != null && gbPort.Equals("GB") ? IsAllowedPort(associatedPort) : true; } else { allowedCat = IsAllowedPort(reportingPort); } } break; default: { } break; } return(allowedCat); }
public async Task ReturnValidCountryCode_WhenPassed_ShouldReturnTrue() { string portCodeGB = "GBABD"; string portNameGB = "Aberdeen / UNITED KINGDOM (GBABD)"; string portCode1 = "GB070"; string portCode2 = "GB085"; string portName1 = "Red Bay / UNITED KINGDOM (GB070)"; string portName2 = "Arran / UNITED KINGDOM (GB085)"; var globalPort = new List <GlobalPort>() { new GlobalPort { Locode = portCodeGB, PortName = portNameGB, CountryCode = "GB" }, new GlobalPort { Locode = portCode2, PortName = portName2, CountryCode = "GB" } }; await actualContext.GlobalPort.AddRangeAsync(globalPort); actualContext.SaveChanges(); var result = _helperService.GetCountryCodeByPort(portName2); var category = globalPort.Find(x => x.PortName == portName2).CountryCode; Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(string)); Assert.IsNotNull(category); Assert.AreEqual(result, category); }