Guest User

Untitled

a guest
Mar 22nd, 2016
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.81 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using Ninject;
  5. using Ninject.Modules;
  6.  
  7. namespace CalculatorApp.Tests
  8. {
  9.     class CalculatorConfig : NinjectModule
  10.     {
  11.         public override void Load()
  12.         {
  13.             Bind<BaseCalculator>().To<CalculatorAgent>();
  14.         }
  15.     }
  16.  
  17.     class TestHelper<T> : IDisposable
  18.     {
  19.         private Random random;
  20.         private IKernel kernel;
  21.         private T agent;
  22.  
  23.         public T Agent
  24.         {
  25.             get
  26.             {
  27.                 return agent;
  28.             }
  29.         }
  30.  
  31.         public TestHelper()
  32.         {
  33.             random = new Random();
  34.             kernel = new StandardKernel(new CalculatorConfig());
  35.             agent = kernel.Get<T>();
  36.         }
  37.  
  38.         internal Tuple<int, int> GenerateValues()
  39.         {
  40.             return new Tuple<int, int>
  41.             (
  42.                 item1: GenerateRandomInteger(),
  43.                 item2: GenerateRandomInteger()
  44.             );
  45.         }
  46.  
  47.         internal int GenerateRandomInteger()
  48.         {
  49.             return random.Next(0, Byte.MaxValue);
  50.         }
  51.  
  52.         public void Dispose()
  53.         {
  54.             Dispose(true);
  55.             GC.SuppressFinalize(this);
  56.         }
  57.  
  58.         protected virtual void Dispose(bool disposing)
  59.         {
  60.             if (disposing)
  61.             {
  62.                 random = null;
  63.                 kernel = null;
  64.  
  65.                 var disposable = agent as IDisposable;
  66.  
  67.                 if (disposable != null)
  68.                     disposable.Dispose();
  69.             }
  70.         }
  71.     }
  72.  
  73.     [TestClass()]
  74.     public class CalculatorTests : IDisposable
  75.     {
  76.         private TestHelper<CalculatorAgent> helper = new TestHelper<CalculatorAgent>();
  77.  
  78.         [TestMethod()]
  79.         public void AddRandomValues()
  80.         {
  81.             // Arrange
  82.             var values = helper.GenerateValues();
  83.  
  84.             // Act
  85.             var testResult = values.Item1 + values.Item2;
  86.             Debug.WriteLine(String.Format("Addition result: {0}", testResult));
  87.  
  88.             // Assert
  89.             Assert.AreEqual(testResult, helper.Agent.Add(values.Item1, values.Item2));
  90.         }
  91.  
  92.         [TestMethod()]
  93.         public void SubtractRandomValues()
  94.         {
  95.             // Arrange
  96.             var values = helper.GenerateValues();
  97.  
  98.             // Act
  99.             var testResult = values.Item1 - values.Item2;
  100.             Debug.WriteLine(String.Format("Subtraction result: {0}", testResult));
  101.  
  102.             // Assert
  103.             Assert.AreEqual(testResult, helper.Agent.Subtract(values.Item1, values.Item2));
  104.         }
  105.  
  106.         [TestMethod()]
  107.         public void MultiplyRandomValues()
  108.         {
  109.             // Arrange
  110.             var values = helper.GenerateValues();
  111.  
  112.             // Act
  113.             var testResult = values.Item1 * values.Item2;
  114.             Debug.WriteLine(String.Format("Multiplication result: {0}", testResult));
  115.  
  116.             // Assert
  117.             Assert.AreEqual(testResult, helper.Agent.Multiply(values.Item1, values.Item2));
  118.         }
  119.  
  120.         [TestMethod()]
  121.         public void DivideRandomValues()
  122.         {
  123.             // Arrange
  124.             var values = helper.GenerateValues();
  125.  
  126.             // Act
  127.             var testResult = values.Item1 / values.Item2;
  128.             Debug.WriteLine(String.Format("Division result: {0}", testResult));
  129.  
  130.             // Assert
  131.             Assert.AreEqual(testResult, helper.Agent.Divide(values.Item1, values.Item2));
  132.         }
  133.  
  134.         public void Dispose()
  135.         {
  136.             Dispose(true);
  137.             GC.SuppressFinalize(this);
  138.         }
  139.  
  140.         protected virtual void Dispose(bool disposing)
  141.         {
  142.             if (disposing)
  143.             {
  144.                 helper.Dispose();
  145.             }
  146.         }
  147.     }
  148. }
Add Comment
Please, Sign In to add comment