public void HiveEntityUri_Cast_To_String() { var id = new HiveEntityUri(1); var output = (string)id; Assert.AreEqual(id.ToString(), output); }
public void HiveEntityUri_Equals_ToString_With_String_Serialization() { var id = new HiveEntityUri("TemplatePath/TemplateName.cshtml"); var id2 = new HiveEntityUri("Home-Page.cshtml"); var output = id.ToString(); var output2 = id2.ToString(); Assert.AreEqual("TemplatePath/TemplateName.cshtml", HiveEntityUri.Parse(output.FromUrlBase64()).GetAllStringParts()); Assert.AreEqual("Home-Page.cshtml", HiveEntityUri.Parse(output2.FromUrlBase64()).GetAllStringParts()); }
public void HiveEntityUriTypeConverter_Converts_From_String() { //Arrange var rawId = new HiveEntityUri("My-Test-Template.cshtml"); var encodedId = rawId.ToString(); var converter = TypeDescriptor.GetConverter(typeof(HiveEntityUri)); //Act //Assert Assert.IsTrue(converter.CanConvertFrom(typeof(string))); Assert.AreEqual(encodedId, converter.ConvertTo(rawId, typeof(string))); Assert.AreEqual(rawId, converter.ConvertFrom(encodedId)); }
/// <summary> /// Binds the model /// </summary> /// <param name="controllerContext"></param> /// <param name="bindingContext"></param> /// <returns></returns> public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var idName = string.IsNullOrEmpty(bindingContext.ModelName) ? "id" : bindingContext.ModelName; var valueProviderResult = bindingContext.GetValue(idName); if (valueProviderResult == null) { return(null); } var rawId = valueProviderResult.ConvertTo(typeof(string)) as string; HiveEntityUri nodeId = null; if (HiveEntityUri.TryParse(rawId, out nodeId)) { //add the bound value to model state if it's not already there, generally only simple props will be there if (!bindingContext.ModelState.ContainsKey(idName)) { bindingContext.ModelState.Add(idName, new ModelState()); bindingContext.ModelState.SetModelValue(idName, new ValueProviderResult(nodeId, nodeId.ToString(), null)); } } return(nodeId); }