Exemplo n.º 1
0
    private void checkAndResponse(HttpListenerRequest request, HttpListenerResponse response)
    {
        NCMBSettings._responseValidationFlag = false;
        MockServerObject mockObj = null;

        StreamReader stream   = new StreamReader(request.InputStream);
        string       bodyJson = stream.ReadToEnd();

        if (request.HttpMethod.Equals("GET") && request.Url.ToString().Equals(SERVER))
        {
            mockObj        = new MockServerObject();
            mockObj.status = 200;
        }
        else
        {
            foreach (MockServerObject mock in mockObjectDic[request.HttpMethod])
            {
                if (request.Url.ToString().Equals(mock.url))
                {
                    if (bodyJson.Length > 0)
                    {
                        if (bodyJson.Equals(mock.body) || request.ContentType.Equals("multipart/form-data; boundary=_NCMBBoundary"))
                        {
                            mockObj         = mock;
                            mockObj.request = request;
                            mockObj.validate();
                            if (mockObj.status == 200 || mockObj.status == 201)
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        mockObj         = mock;
                        mockObj.request = request;
                        mockObj.validate();
                        if (mockObj.status == 200 || mockObj.status == 201)
                        {
                            break;
                        }
                    }
                }
            }
        }

        if (mockObj == null)
        {
            mockObj = new MockServerObject();
        }

        response.StatusCode = mockObj.status;
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(mockObj.responseJson);
        // Get a response stream and write the response to it.
        response.ContentLength64 = buffer.Length;
        System.IO.Stream output = response.OutputStream;
        output.Write(buffer, 0, buffer.Length);
        // You must close the output stream.
        response.Close();
    }
Exemplo n.º 2
0
        public void IsReferencedTest_NonReferenced_ReturnFalse()
        {
            var mockObject = new MockServerObject("TestValue");
            var serverReferenceResolver = new ReferenceResolver();

            Assert.IsFalse(serverReferenceResolver.IsReferenced(this, mockObject));
        }
Exemplo n.º 3
0
        public void IsReferencedTest_Referenced_ReturnTrue()
        {
            var mockObject = new MockServerObject("TestValue");
            var serverReferenceResolver = new ReferenceResolver();

            serverReferenceResolver.GetReference(this, mockObject);
            Assert.IsTrue(serverReferenceResolver.IsReferenced(this, mockObject));
        }
Exemplo n.º 4
0
        public void ResolveReferenceTest_NonReferenced_ReturnDto()
        {
            var           serverReferenceResolver = new ReferenceResolver();
            PrivateObject po         = new PrivateObject(serverReferenceResolver);
            var           mockObject = new MockServerObject("TestValue");
            var           _knownDtos = ((Dictionary <Guid, ServerObjectBase>)po.GetField("_knownDtos"));

            var _knownDtosCount = _knownDtos.Count;

            var stringGuid = serverReferenceResolver.GetReference(this, mockObject);
            var dto        = serverReferenceResolver.ResolveReference(new Guid(stringGuid));

            Assert.IsNotNull(dto);
            Assert.AreEqual(_knownDtosCount + 1, _knownDtos.Count);
        }
Exemplo n.º 5
0
    private void ReadMockData()
    {
        //Read mock data from yaml and json files
        mockObjectDic.Clear();
        mockObjectDic.Add("GET", new List <MockServerObject> ());
        mockObjectDic.Add("POST", new List <MockServerObject> ());
        mockObjectDic.Add("PUT", new List <MockServerObject> ());
        mockObjectDic.Add("DELETE", new List <MockServerObject> ());
        //Get yaml string
        string yamlString = LoadFileData(pathFileLoad, false, null);
        // Setup the input
        var input = new StringReader(yamlString);
        // Load the stream
        var yaml = new YamlStream();

        yaml.Load(input);
        int docCount = yaml.Documents.Count;

        for (int i = 0; i < docCount; i++)
        {
            var mapping = (YamlMappingNode)yaml.Documents [i].RootNode;

            MockServerObject mock   = new MockServerObject();
            var            request  = (YamlMappingNode)mapping.Children [new YamlScalarNode("request")];
            var            response = (YamlMappingNode)mapping.Children [new YamlScalarNode("response")];
            YamlScalarNode method   = (YamlScalarNode)request.Children [new YamlScalarNode("method")];
            mock.method = method.Value;

            if (request.Children.Keys.Contains(new YamlScalarNode("body")))
            {
                var body = request.Children [new YamlScalarNode("body")];
                mock.body = body.ToJson().Replace("\"[", "[").Replace("]\"", "]");
            }

            if (request.Children.Keys.Contains(new YamlScalarNode("query")))
            {
                var    query       = request.Children [new YamlScalarNode("query")];
                String queryString = "";

                if (query is YamlMappingNode)
                {
                    YamlMappingNode queryMapNode = (YamlMappingNode)query;
                    foreach (var item in queryMapNode.Children)
                    {
                        if (queryString.Length > 0)
                        {
                            queryString += "&";
                        }
                        queryString += item.Key + "=" + (item.Value is YamlMappingNode ? item.Value.ToJson() : item.Value);
                    }
                }
                mock.query = queryString;
            }

            if (request.Children.Keys.Contains(new YamlScalarNode("header")))
            {
                var header = request.Children [new YamlScalarNode("header")];
                mock.header = header.ToJson();
            }

            YamlScalarNode url = (YamlScalarNode)request.Children [new YamlScalarNode("url")];
            if (mock.query != null && mock.query.Length > 0)
            {
                mock.url = MockServer.SERVER + url.Value + "?" + mock.query;
            }
            else
            {
                mock.url = MockServer.SERVER + url.Value;
            }


            if (response.Children.Keys.Contains(new YamlScalarNode("X-NCMB-Response-Signature")))
            {
                mock.responseSignature = true;
            }

            YamlScalarNode status = (YamlScalarNode)response.Children [new YamlScalarNode("status")];
            mock.status = Convert.ToInt32(status.Value);

            YamlScalarNode file = (YamlScalarNode)response.Children [new YamlScalarNode("file")];
            mock.responseJson = LoadFileData("PlayModeTest" + file.Value, true, "");
            mockObjectDic [mock.method].Add(mock);
        }
    }
Exemplo n.º 6
0
        public void DtosStoreTest_CreateAndStoreGUID_GUIDFound()
        {
            var _mockObject = new MockServerObject("TestValue");

            Assert.IsNotNull(ServerObjectBase.FindDto(_mockObject.DtoGuid), "Guid not found in know dtos after object creation.");
        }