public void Success()
        {
            //Arrange
            var controllerInfos = new ProxyControllerInfoGenerator().GetControllerInfos();

            MockBuildHelper.Setup(p => p.GetServiceName("Home", "PSrv", true)).Returns("homePSrv");
            MockBuildHelper.Setup(p => p.GetProxyFunctionName("OneParam")).Returns("OneParam");
            MockBuildHelper.Setup(p => p.GetProxyFunctionName("OneComplexParam")).Returns("OneComplexParam");

            MockBuildHelper.Setup(p => p.GetFunctionParameters(It.IsAny <MethodInfo>())).Returns("name");
            MockBuildHelperHttpCall.Setup(p => p.BuildHttpCall(It.IsAny <ProxyMethodInfos>(), It.IsAny <ProxyBuilder>())).Returns("get('Home/OneParam'+ '?name='+encodeURIComponent(name))");

            //Act
            var generatedProxyEntries = AngularJsProxyBuilder.BuildProxy(controllerInfos);


            //Assert
            Assert.AreEqual(generatedProxyEntries[0].FileContent.Trim(), CompleteTemplateForAssert.Trim());
            //Achtung der Unit Test prüft nur ob die Funktionen entsprechend oft aufgerufen wurden, aber nicht ob das Ergebnis
            //"richtig" stimmt, die geschieht bereits durch andere Unit Tests
            MockBuildHelper.Verify(p => p.GetServiceName("Home", "PSrv", true), () => Times.Exactly(3));
            MockBuildHelper.Verify(p => p.GetProxyFunctionName("OneParam"), () => Times.Exactly(1));
            MockBuildHelper.Verify(p => p.GetProxyFunctionName("OneComplexParam"), () => Times.Exactly(1));
            MockBuildHelper.Verify(p => p.GetFunctionParameters(It.IsAny <MethodInfo>()), () => Times.Exactly(2));
            MockBuildHelperHttpCall.Verify(p => p.BuildHttpCall(It.IsAny <ProxyMethodInfos>(), It.IsAny <ProxyBuilder>()), () => Times.Exactly(2));
        }
Beispiel #2
0
        public void BuildPost_IsComplexeType_True()
        {
            //Arrange
            var methodInfos = new ProxyMethodInfos();

            //Die MethodenInfos laden - können wir nicht Mocken!
            methodInfos.MethodInfo = TestClassType.GetMethod("OneComplexParam");
            methodInfos.ProxyMethodParameterInfos.Add(new ProxyMethodParameterInfo()
            {
                IsComplexeType = true, ParameterName = "person"
            });

            //Mocken der passenden Infos
            MockBuildHelper.Setup(p => p.GetClearControllerName(It.IsAny <Type>())).Returns("Home");
            MockBuildHelper.Setup(p => p.BuildUrlParameterId(It.IsAny <List <ProxyMethodParameterInfo> >())).Returns(String.Empty);
            MockBuildHelper.Setup(p => p.BuildUrlParameter(It.IsAny <List <ProxyMethodParameterInfo> >())).Returns(" + '?name='+encodeURIComponent(name)");

            //Act
            var getParams = ProxyBuilderHttpCall.BuildHttpCall(methodInfos, ProxyBuilder.AngularTypeScript);

            //Assert
            Assert.AreEqual(getParams, "post('Home/OneComplexParam' + '?name='+encodeURIComponent(name),person)");
        }
Beispiel #3
0
        public void BuildGet_NoComplexType_WithId()
        {
            //Arrange
            var methodInfos = new ProxyMethodInfos();

            //Die MethodenInfos laden - können wir nicht Mocken!
            methodInfos.MethodInfo = TestClassType.GetMethod("OneParam");
            methodInfos.ProxyMethodParameterInfos.Add(new ProxyMethodParameterInfo()
            {
                IsComplexeType = false, ParameterName = "id"
            });

            //Mocken der passenden Infos
            MockBuildHelper.Setup(p => p.GetClearControllerName(It.IsAny <Type>())).Returns("Home");
            MockBuildHelper.Setup(p => p.BuildUrlParameterId(It.IsAny <List <ProxyMethodParameterInfo> >())).Returns(" + '/' + id ");
            MockBuildHelper.Setup(p => p.BuildUrlParameter(It.IsAny <List <ProxyMethodParameterInfo> >())).Returns(" + '?name='+encodeURIComponent(name)");

            //Act
            var getParams = ProxyBuilderHttpCall.BuildHttpCall(methodInfos, ProxyBuilder.AngularJavaScript);

            //Assert
            Assert.AreEqual(getParams, "get('Home/OneParam' + '/' + id  + '?name='+encodeURIComponent(name))");
        }