aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting/MachineService_TST.cs
blob: 455a4589507b959bd4ac0f4cb46098dcb8daf7ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Threading;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Tango.Transport.Web;
using Tango.Web.Authentication;

namespace Tango.UnitTesting
{
    [TestClass]
    [TestCategory("Machine Service")]
    public class MachineService_TST
    {
        private class TokenObject : IEquatable<TokenObject>
        {
            public String Value { get; set; }

            public bool Equals(TokenObject other)
            {
                return Value == other.Value;
            }
        }

        [TestMethod]
        public void Test_Tokens_Manager()
        {
            TokensManager<TokenObject> tokensManager = new TokensManager<TokenObject>();

            TokenObject t1 = new TokenObject();
            t1.Value = "Roy";

            TokenObject t2 = new TokenObject();
            t2.Value = "Sagi";

            String token1 = tokensManager.GetOrCreate(t1).AccessToken;
            String token2 = tokensManager.GetOrCreate(t2).AccessToken;

            Assert.AreEqual(tokensManager.GetTokenObject(token1), t1);
            Assert.AreEqual(tokensManager.GetTokenObject(token2), t2);

            TokenObject t3 = new TokenObject();
            t3.Value = "Roy";

            String token3 = tokensManager.GetOrCreate(t3).AccessToken;
            Assert.AreEqual(token3, token1);
            Assert.AreEqual(tokensManager.GetTokenObject(token1), tokensManager.GetTokenObject(token3));

            TokenObject tOld = new TokenObject()
            {
                Value = "Expired Token"
            };

            tokensManager.ExpirationTime = TimeSpan.FromSeconds(2);

            Thread.Sleep(2000);

            String recent_token = tokensManager.GetOrCreate(tOld).AccessToken;

            Thread.Sleep(1000);

            tokensManager.Validate(recent_token);

            Assert.ThrowsException<TokenExpiredException>(() => tokensManager.Validate(token1));
        }
    }
}