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()");
        }
示例#2
0
        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");
        }
示例#3
0
        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);
        }