update unittest
@@ -1,20 +0,0 @@ | ||
1 | -using System; | |
2 | -using System.Collections.Generic; | |
3 | -using System.Text; | |
4 | - | |
5 | -using NUnit.Framework; | |
6 | -using FeliCa2Money; | |
7 | - | |
8 | -namespace FeliCa2Money.test | |
9 | -{ | |
10 | - [TestFixture] | |
11 | - public class EdyTest | |
12 | - { | |
13 | - [Test] | |
14 | - public void test1() | |
15 | - { | |
16 | - FeliCa2Money.Edy c = new FeliCa2Money.Edy(); | |
17 | - } | |
18 | - | |
19 | - } | |
20 | -} |
@@ -0,0 +1,43 @@ | ||
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.Text; | |
4 | + | |
5 | +using NUnit.Framework; | |
6 | +using FeliCa2Money; | |
7 | +using FelicaLib; | |
8 | + | |
9 | +namespace FeliCa2Money.test | |
10 | +{ | |
11 | + [TestFixture] | |
12 | + public class EdyTest | |
13 | + { | |
14 | + DummyFelica f; | |
15 | + | |
16 | + [SetUp] | |
17 | + public void Setup() | |
18 | + { | |
19 | + f = new DummyFelica(); | |
20 | + f.SetSystemCode((int)SystemCode.Edy); | |
21 | + | |
22 | + // set card id | |
23 | + byte[] d; | |
24 | + d = new byte[] { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }; | |
25 | + f.SetTestData(0x110b, d); | |
26 | + } | |
27 | + | |
28 | + [TearDown] | |
29 | + public void TearDown() | |
30 | + { | |
31 | + f = null; | |
32 | + } | |
33 | + | |
34 | + [Test] | |
35 | + public void analyzeCardId() | |
36 | + { | |
37 | + FeliCa2Money.Edy c = new FeliCa2Money.Edy(); | |
38 | + c.analyzeCardId(f); | |
39 | + | |
40 | + Assert.AreEqual(c.AccountId, "456789ABCDEF0123"); | |
41 | + } | |
42 | + } | |
43 | +} |
@@ -1,4 +1,5 @@ | ||
1 | 1 | using System; |
2 | +using System.Collections; | |
2 | 3 | using System.Collections.Generic; |
3 | 4 | using System.Text; |
4 | 5 |
@@ -6,8 +7,9 @@ | ||
6 | 7 | { |
7 | 8 | public class DummyFelica : IFelica |
8 | 9 | { |
9 | - private byte[] dataBuf = null; | |
10 | + private Hashtable dataBufs = new Hashtable(); | |
10 | 11 | private int pos = 0; |
12 | + private int systemCode; | |
11 | 13 | |
12 | 14 | public DummyFelica() |
13 | 15 | { |
@@ -16,12 +18,12 @@ | ||
16 | 18 | |
17 | 19 | public void Dispose() |
18 | 20 | { |
19 | - // do nothing | |
21 | + dataBufs = null; | |
20 | 22 | } |
21 | 23 | |
22 | - public void Polling(int systemcode) | |
24 | + public void Polling(int s) | |
23 | 25 | { |
24 | - pos = 0; | |
26 | + systemCode = s; | |
25 | 27 | } |
26 | 28 | |
27 | 29 | public byte[] IDm() |
@@ -44,11 +46,12 @@ | ||
44 | 46 | return buf; |
45 | 47 | } |
46 | 48 | |
47 | - public byte[] ReadWithoutEncryption(int servicecode, int addr) | |
49 | + public byte[] ReadWithoutEncryption(int sv, int addr) | |
48 | 50 | { |
49 | - byte[] data = new byte[16]; | |
51 | + byte[] ret = new byte[16]; | |
52 | + byte[] data = (byte[])dataBufs[systemCode << 16 | sv]; | |
50 | 53 | |
51 | - if (pos > data.Length) | |
54 | + if (data == null || data.Length < (addr + 1) * 16) | |
52 | 55 | { |
53 | 56 | return null; |
54 | 57 | } |
@@ -55,15 +58,22 @@ | ||
55 | 58 | |
56 | 59 | for (int i = 0; i < 16; i++) |
57 | 60 | { |
58 | - data[i] = dataBuf[pos + i]; | |
61 | + ret[i] = data[addr * 16 + i]; | |
59 | 62 | } |
60 | 63 | pos += 16; |
61 | 64 | return data; |
62 | 65 | } |
63 | 66 | |
64 | - public void SetTestData(byte[] data) | |
67 | + // set data | |
68 | + | |
69 | + public void SetSystemCode(int s) | |
65 | 70 | { |
66 | - dataBuf = data; | |
71 | + systemCode = s; | |
67 | 72 | } |
73 | + | |
74 | + public void SetTestData(int sv, byte[] data) | |
75 | + { | |
76 | + dataBufs[systemCode << 16 | sv] = data; | |
77 | + } | |
68 | 78 | } |
69 | 79 | } |
@@ -6,7 +6,7 @@ | ||
6 | 6 | namespace FelicaLib |
7 | 7 | { |
8 | 8 | // システムコード |
9 | - enum SystemCode : int | |
9 | + public enum SystemCode : int | |
10 | 10 | { |
11 | 11 | Any = 0xffff, // ANY |
12 | 12 | Common = 0xfe00, // 共通領域 |