PageRenderTime 29ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/src/DevCode/MoqaLate.Tests/Unit/MethodParametersParsersTest.cs

http://moqalate.codeplex.com
C# | 129 lines | 85 code | 44 blank | 0 comment | 0 complexity | 369986c03a33f1b74f74e1fbc4f3a9e1 MD5 | raw file
Possible License(s): BSD-3-Clause, GPL-2.0
  1. using System;
  2. using System.Collections.Generic;
  3. using AutoMoq;
  4. using FluentAssertions;
  5. using MoqaLate.InterfaceTextParsing;
  6. using NUnit.Framework;
  7. namespace MoqaLate.Tests.Unit
  8. {
  9. [TestFixture]
  10. public class MethodParametersParsersTest
  11. {
  12. [Test]
  13. public void ShouldParseSingle()
  14. {
  15. var paras = MethodParameterParser.Parse("int p1");
  16. paras.Count.Should().Be(1);
  17. paras[0].Type.Should().Be("int");
  18. paras[0].Name.Should().Be("p1");
  19. }
  20. [Test]
  21. public void ShouldParseMultiple()
  22. {
  23. var paras = MethodParameterParser.Parse("int p1, string p2");
  24. paras.Count.Should().Be(2);
  25. paras[0].Type.Should().Be("int");
  26. paras[0].Name.Should().Be("p1");
  27. paras[1].Type.Should().Be("string");
  28. paras[1].Name.Should().Be("p2");
  29. }
  30. [Test]
  31. public void ShouldParseDoubleComplexGeneric()
  32. {
  33. var paras = MethodParameterParser.Parse("Dictionary<List<int>, Dictionary<string, object>> p1, Dictionary<List<string>, Dictionary<float, int>> p2");
  34. paras.Count.Should().Be(2);
  35. paras[0].Type.Should().Be("Dictionary<List<int>, Dictionary<string, object>>");
  36. paras[0].Name.Should().Be("p1");
  37. paras[1].Type.Should().Be("Dictionary<List<string>, Dictionary<float, int>>");
  38. paras[1].Name.Should().Be("p2");
  39. }
  40. [Test]
  41. public void ShouldParseTrippleComplexGeneric()
  42. {
  43. var paras = MethodParameterParser.Parse("Dictionary<List<int>, Dictionary<string, object>> p1, Dictionary<List<string>, Dictionary<float, int>> p2, Dictionary<List<float>, Dictionary<float, int>> p3");
  44. paras.Count.Should().Be(3);
  45. paras[0].Type.Should().Be("Dictionary<List<int>, Dictionary<string, object>>");
  46. paras[0].Name.Should().Be("p1");
  47. paras[1].Type.Should().Be("Dictionary<List<string>, Dictionary<float, int>>");
  48. paras[1].Name.Should().Be("p2");
  49. paras[2].Type.Should().Be("Dictionary<List<float>, Dictionary<float, int>>");
  50. paras[2].Name.Should().Be("p3");
  51. }
  52. [Test]
  53. public void ShouldParseMixOfNonGenericAndComplexGenericWhenNonGenericFirst()
  54. {
  55. var paras = MethodParameterParser.Parse("int p1, Dictionary<List<string>, Dictionary<float, int>> p2");
  56. paras.Count.Should().Be(2);
  57. paras[0].Type.Should().Be("int");
  58. paras[0].Name.Should().Be("p1");
  59. paras[1].Type.Should().Be("Dictionary<List<string>, Dictionary<float, int>>");
  60. paras[1].Name.Should().Be("p2");
  61. }
  62. [Test]
  63. public void ShouldParseMixOfNonGenericAndComplexGenericWhenNonGenericSecond()
  64. {
  65. var paras = MethodParameterParser.Parse("Dictionary<List<string>, Dictionary<float, int>> p1, int p2");
  66. paras.Count.Should().Be(2);
  67. paras[0].Type.Should().Be("Dictionary<List<string>, Dictionary<float, int>>");
  68. paras[0].Name.Should().Be("p1");
  69. paras[1].Type.Should().Be("int");
  70. paras[1].Name.Should().Be("p2");
  71. }
  72. [Test]
  73. public void ShouldParseMixOfNonGenericAndComplexGenericWhenNonGenericMiddle()
  74. {
  75. var paras = MethodParameterParser.Parse("Dictionary<List<int>, Dictionary<string, object>> p1, int p2, Dictionary<List<float>, Dictionary<float, int>> p3");
  76. paras.Count.Should().Be(3);
  77. paras[0].Type.Should().Be("Dictionary<List<int>, Dictionary<string, object>>");
  78. paras[0].Name.Should().Be("p1");
  79. paras[1].Type.Should().Be("int");
  80. paras[1].Name.Should().Be("p2");
  81. paras[2].Type.Should().Be("Dictionary<List<float>, Dictionary<float, int>>");
  82. paras[2].Name.Should().Be("p3");
  83. }
  84. }
  85. }