public void TestInitialise() { _primitiveService = new Mock <IOpenApiPrimitiveToTypeService>(); _referenceService = new Mock <IOpenApiReferenceToTypeService>(); _objectService = new Mock <IOpenApiObjectToTypeService>(); _keyStore = new Mock <IObjectsProcessingKeyStore>(); _service = new OpenApiUmbrellaTypeResolver(_primitiveService.Object, _referenceService.Object); _definitions = new Dictionary <string, IOpenApiType>(); _suggestedName = Guid.NewGuid().ToString(); _primitive = new OpenApiPrimitiveType(); _referenced = new OpenApiReferencedType(); _object = new OpenApiObjectType(); _array = new OpenApiArrayType(); _primitiveService.Setup(s => s.GetType(_primitive, It.IsAny <string>())) .Returns(typeof(int)); _referenceService.Setup(s => s.GetType(_objectService.Object, _service, _keyStore.Object, _referenced, _definitions)) .Returns(typeof(object)); _objectService.Setup(s => s.GetType(_object, _definitions, It.IsAny <string>(), _keyStore.Object)) .Returns(typeof(object)); }
public void TestInitialise() { _lastTokenService = new Mock <ILastTokenInPathService>(); _objectKeyStore = new Mock <IObjectsProcessingKeyStore>(); _objectService = new Mock <IOpenApiObjectToTypeService>(); _typeResolver = new Mock <IOpenApiUmbrellaTypeResolver>(); _service = new OpenApiReferenceToTypeService(_lastTokenService.Object); _inputType = new OpenApiReferencedType(); _definedNotCreated = new OpenApiObjectType(); _inputDefinitions = new Dictionary <string, IOpenApiType>(); _inputDefinitions["NewType"] = _definedNotCreated; _originalName = "path/ExistingType"; _processedName = "ExistingType"; CurrentTypeHolder.Types["ExistingType"] = typeof(ExistingType); _lastTokenService.Setup(s => s.GetLastToken(It.IsAny <string>())) .Returns(() => _processedName).Verifiable(); _typeResolver.Setup(s => s.GetType(_objectService.Object, _objectKeyStore.Object, _definedNotCreated, _inputDefinitions, "NewType")).Returns(typeof(NewType)); }
public Type GetType(IOpenApiObjectToTypeService objectService, IOpenApiUmbrellaTypeResolver typeResolver, IObjectsProcessingKeyStore objectKeyStore, OpenApiReferencedType referencedType, IDictionary <string, IOpenApiType> definitions) { var typeName = _lastTokenService.GetLastToken(referencedType.Type); if (!CurrentTypeHolder.Types.TryGetValue(typeName, out var existingType)) { if (!definitions.TryGetValue(typeName, out var definedNotCreated)) { throw new NotSupportedException($"Referenced type {typeName} is not defined in OpenApi document"); } //handle circular reference objectKeyStore.ThrowIfPresent(typeName); var createdType = typeResolver.GetType(objectService, objectKeyStore, definedNotCreated, definitions, typeName); CurrentTypeHolder.Types[typeName] = createdType; return(createdType); } return(existingType); }