public static void unreallisttypereference_is_initiated_as_expected_when_passed_a_list_type_reference_with_an_enum_type_as_contained_type() { var userEnumDefinition = GenerateEnumDefinition(); var unrealEnumDetails = new UnrealEnumDetails(userEnumDefinition, "TestEnum", null); var containedEnumReference = new UnrealEnumTypeReference(unrealEnumDetails); var unrealEnumTypeReference = new UnrealListTypeReference(containedEnumReference); Assert.That(unrealEnumTypeReference.UnderlyingCapitalisedName == "ImprobableCodegenTestEnum"); Assert.That(unrealEnumTypeReference.RequiredIncludes.Count == 2); Assert.That(unrealEnumTypeReference.RequiredIncludes.Contains("\"ImprobableCodegenTestEnumList.h\"")); Assert.That(unrealEnumTypeReference.RequiredIncludes.Contains("\"TestEnum.h\"")); Assert.That(unrealEnumTypeReference.UnderlyingQualifiedName == "improbable::codegen::TestEnum"); Assert.That(unrealEnumTypeReference.UnrealType == "UImprobableCodegenTestEnumList*"); Assert.That(unrealEnumTypeReference.AssignUnderlyingValueToUnrealMemberVariable("TestField", "val") == "if (TestField == nullptr) { TestField = NewObject<UImprobableCodegenTestEnumList>(this); } TestField->Init(val)"); Assert.That(unrealEnumTypeReference.ConvertUnderlyingValueToUnrealLocalVariable("val") == "NewObject<UImprobableCodegenTestEnumList>()->Init(val)"); Assert.That(unrealEnumTypeReference.ConvertUnderlyingValueToUnrealMemberVariable("val") == "NewObject<UImprobableCodegenTestEnumList>(this)->Init(val)"); Assert.That(unrealEnumTypeReference.ConvertUnrealValueToUnderlyingValue("val") == "val->GetUnderlying()"); }
public static void unrealenumtypereference_is_initiated_as_expected_when_passed_an_enum_type_reference() { var enumDefinition = GenerateEnumDefinition(); var unrealEnumDetails = new UnrealEnumDetails(enumDefinition, "TestEnum", null); var unrealEnumTypeReference = new UnrealEnumTypeReference(unrealEnumDetails); Assert.That(unrealEnumTypeReference.UnderlyingCapitalisedName == "ImprobableCodegenTestEnum"); Assert.That(unrealEnumTypeReference.RequiredIncludes.Count == 1); Assert.That(unrealEnumTypeReference.RequiredIncludes.Contains("\"TestEnum.h\"")); Assert.That(unrealEnumTypeReference.UnderlyingQualifiedName == "improbable::codegen::TestEnum"); Assert.That(unrealEnumTypeReference.UnrealType == "ETestEnum"); Assert.That(unrealEnumTypeReference.AssignUnderlyingValueToUnrealMemberVariable("TestField", "val") == "TestField = static_cast<ETestEnum>(val)"); Assert.That(unrealEnumTypeReference.ConvertUnderlyingValueToUnrealLocalVariable("val") == "static_cast<ETestEnum>(val)"); Assert.That(unrealEnumTypeReference.ConvertUnderlyingValueToUnrealMemberVariable("val") == "static_cast<ETestEnum>(val)"); Assert.That(unrealEnumTypeReference.ConvertUnrealValueToSnapshotValue("val") == "val"); Assert.That(unrealEnumTypeReference.ConvertUnrealValueToUnderlyingValue("1") == "static_cast<improbable::codegen::TestEnum>(1)"); Assert.That(unrealEnumTypeReference.DefaultInitialisationString == "static_cast<improbable::codegen::TestEnum>(0)"); Assert.That(unrealEnumTypeReference.SnapshotType == "ETestEnum"); }
private IUnrealTypeReference GenerateUnrealTypeReference(TypeReferenceRaw typeReference) { IUnrealTypeReference unrealTypeReference; if (typeReference.IsBuiltInType) { unrealTypeReference = new UnrealBuiltInTypeReference(typeReference); } else if (qualifiedNameToEnumDefinition.ContainsKey(typeReference.TypeName)) { var enumDefinition = qualifiedNameToEnumDefinition[typeReference.TypeName]; var unrealEnumDetails = enumDefinitionToUnrealEnum[enumDefinition]; unrealTypeReference = new UnrealEnumTypeReference(unrealEnumDetails); } else { var typeDefinition = qualifiedNameToTypeDefinition[typeReference.TypeName]; var unrealTypeDetails = typeDefinitionToUnrealType[typeDefinition]; unrealTypeReference = new UnrealUserTypeReference(unrealTypeDetails); } return(unrealTypeReference); }