public void ReturnTypeNameForApi_UsesDtoForCollection( ClassViewModelData data, string methodName, string expectedReturn) { var method = data.ClassViewModel.MethodByName(methodName); Assert.Equal(expectedReturn, method.ApiActionReturnTypeDeclaration); }
public void NullableTypeForDto_DoesNotMangleNamespace( ClassViewModelData data, string dtoOputputNamespace, string propertyName, string expectedPropertyType ) { ClassViewModel vm = data; var prop = vm.PropertyByName(propertyName); // Precondition: Model's type name is contained in output namespace: Assert.Contains(prop.PureType.Name, dtoOputputNamespace); // Precondition: Model's type name is contained in its own namespace: Assert.Contains(prop.PureType.Name, prop.PureType.FullNamespace); var dtoPropType = prop.Type.NullableTypeForDto(dtoOputputNamespace); Assert.Equal(expectedPropertyType, dtoPropType); }
public void IsBool_CorrectForBoolProperties(ClassViewModelData data) { ClassViewModel vm = data; foreach (var prop in new[] { vm.PropertyByName(nameof(Bools.NullableGenericClassName)), vm.PropertyByName(nameof(Bools.NullableGenericKeywordName)), vm.PropertyByName(nameof(Bools.NullableQuestionMarkClassName)), vm.PropertyByName(nameof(Bools.NullableQuestionMarkKeywordName)), }) { Assert.True(prop.Type.IsBool); Assert.True(prop.PureType.IsBool); Assert.True(prop.Type.IsNullable); } // Collections foreach (var prop in new[] { vm.PropertyByName(nameof(Bools.Collection)), vm.PropertyByName(nameof(Bools.CollectionNullableItems)), }) { Assert.True(prop.Type.IsCollection); Assert.False(prop.Type.IsBool); Assert.True(prop.PureType.IsBool); } // Arrays foreach (var prop in new[] { vm.PropertyByName(nameof(Bools.Array)), vm.PropertyByName(nameof(Bools.ArrayNullable)), }) { Assert.True(prop.Type.IsArray); Assert.False(prop.Type.IsBool); Assert.True(prop.PureType.IsBool); } }
public void IsNumber_TrueForNumbers(ClassViewModelData data) { ClassViewModel vm = data; Assert.True(vm.Type.IsNumber); }