public void GivenNativeType_GetNativeTypeID_ReturnsCorrespondingIndexFromNativePropertyTypes()
        {
            PageDefinitionTypeMapper mapper = new PageDefinitionTypeMapper(null);

            int nativeTypeID = mapper.GetNativeTypeID(typeof(PropertyString));

            Assert.Equal <Type>(mapper.NativePropertyTypes[nativeTypeID], typeof(PropertyString));
        }
        public void GivenNonNativeType_GetNativeTypeID_ThrowsException()
        {
            PageDefinitionTypeMapper mapper = new PageDefinitionTypeMapper(null);
            Type nonNativeType = typeof(string);

            Exception exception = Record.Exception(() => { mapper.GetNativeTypeID(nonNativeType); });

            Assert.NotNull(exception);
        }
        public void GivenPageTypePropertyDefinitionWithNativeType_GetPageDefinitionType_ReturnsCorrectPageDefinitionType()
        {
            PageTypePropertyDefinition definition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            definition.PageTypePropertyAttribute.Type = typeof(PropertyString);
            MockRepository            fakes       = new MockRepository();
            PageDefinitionTypeFactory fakeFactory = fakes.Stub <PageDefinitionTypeFactory>();
            PageDefinitionTypeMapper  mapper      = new PageDefinitionTypeMapper(fakeFactory);
            int nativeTypeID = mapper.GetNativeTypeID(definition.PageTypePropertyAttribute.Type);
            PageDefinitionType pageDefinitionTypeFromFactory = new PageDefinitionType(1, PropertyDataType.String, TestValueUtility.CreateRandomString());

            fakeFactory.Stub(factory => factory.GetPageDefinitionType(nativeTypeID)).Return(pageDefinitionTypeFromFactory);
            fakeFactory.Replay();

            PageDefinitionType returnedPageDefinitionType = mapper.GetPageDefinitionType(definition);

            Assert.Equal <PageDefinitionType>(pageDefinitionTypeFromFactory, returnedPageDefinitionType);
        }