AnsiStringTests.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Xunit;
  7. using Shouldly;
  8. using PetaPoco;
  9. namespace PetaPoco.Tests.Unit.Core
  10. {
  11. public class AnsiStringTests
  12. {
  13. [Fact]
  14. public void Constructor_Returns_Valid_Object()
  15. {
  16. var input = "Some string value";
  17. var output = new AnsiString(input);
  18. output.ShouldBeOfType<AnsiString>();
  19. output.Value.ShouldBe(input);
  20. }
  21. [Fact]
  22. public void Explicit_Conversion_Works()
  23. {
  24. var input = "An ordinary string value";
  25. var output = (AnsiString)input;
  26. output.ShouldBeOfType<AnsiString>();
  27. output.Value.ShouldBe(input);
  28. }
  29. [Theory]
  30. [InlineData(typeof(object))]
  31. [InlineData(typeof(int))]
  32. [InlineData(typeof(List<string>))]
  33. public void Explicit_Conversion_Non_Strings_Should_Throw(Type type)
  34. {
  35. var input = Activator.CreateInstance(type);
  36. Action act = () => { var output = (AnsiString)input; };
  37. act.ShouldThrow<InvalidCastException>();
  38. }
  39. [Theory]
  40. [InlineData("njkasnd")]
  41. [InlineData(4720)]
  42. [InlineData(567.234)]
  43. public void Extension_Method_Works(object input)
  44. {
  45. var output = input.ToAnsiString();
  46. output.ShouldBeOfType<AnsiString>();
  47. output.Value.ShouldBe(input.ToString());
  48. }
  49. }
  50. }