public DataSet.TokenRow Publish() { TokenTableAdapter ta = new TokenTableAdapter(); DataSet.TokenDataTable dt = ta.GetDataBySubscriberId(subscriber.Id); if (dt.Count > 0) { if (dt.Count >= Constant.AuthTokenMaxCount) { if (dt[1].PublishedDate > now - Constant.AuthTokenDoubtLeakSpan && subscriber.AuthScheme == AuthScheme.Web.ToString()) { throw new DoubtfulAuthBehaviorException("�Z���Ԃɑ����̔F�g�[�N���̔��s��v������܂���"); } } DataSet.TokenRow r2 = dt[dt.Count - 1]; TokenVerifier v = new TokenVerifier(r2, now); if (v.IsFresh) { return r2; } } for (int i = 0; i < dt.Count - Constant.AuthTokenMaxCount + 1; i++) { dt[i].Delete(); } string tokenBody = Guid.NewGuid().ToString("N"); DataSet.TokenRow t = dt.AddTokenRow(subscriber, now, tokenBody); ta.Update(dt); return t; }
public void Test_Properties() { using (TransactionScope scope = new TransactionScope()) { TitleTableAdapter tta = new TitleTableAdapter(); tta.Insert("test title", "test push message", basePath + @"\copyDirectory_dist", basePath + @"\copyDirectory_orig"); DataSet.TitleRow title = tta.GetDataByName("test title")[0]; SubscriberTableAdapter sta = new SubscriberTableAdapter(); sta.Insert(title.Id, "test authkey", "web", Constant.Ago); sta.Insert(title.Id, "test authkey 2", "web", new DateTime(2011, 10, 13)); DataSet.SubscriberDataTable sdt = sta.GetDataByTitleId(title.Id); DataSet.SubscriberRow s1, s2; if (sdt[0].AuthenticationKey == "test authkey") { s1 = sdt[0]; s2 = sdt[1]; } else { s2 = sdt[0]; s1 = sdt[1]; } TokenTableAdapter kta = new TokenTableAdapter(); kta.Insert(s1.Id, new DateTime(2011, 10, 12, 0, 0, 0), "deadbeef"); kta.Insert(s2.Id, new DateTime(2011, 10, 12, 4, 59, 50), "deadbeef2"); DataSet.TokenRow k1, k2; k1 = kta.GetDataByBody("deadbeef")[0]; k2 = kta.GetDataByBody("deadbeef2")[0]; Expect(SiteConstant.IsConfigurationOK, Is.EqualTo(true)); DateTime now = new DateTime(2011, 10, 12, 5, 0, 0); TokenPublisher p1 = new TokenPublisher(s1, now); DataSet.TokenRow pk1 = p1.Publish(); Expect(pk1.Id, Is.Not.EqualTo(k1.Id)); TokenPublisher p2 = new TokenPublisher(s2, now); DataSet.TokenRow pk2 = p2.Publish(); Expect(pk2.Id, Is.EqualTo(k2.Id)); kta.Insert(s2.Id, new DateTime(2011, 10, 12, 4, 59, 10), "deadbeef3"); kta.Insert(s2.Id, new DateTime(2011, 10, 12, 4, 59, 20), "deadbeef4"); TokenPublisher p2_2 = new TokenPublisher(s2, now); try { p2_2.Publish(); Expect(false); } catch (DoubtfulAuthBehaviorException) { // OK } Expect(kta.GetDataBySubscriberId(s2.Id).Count, Is.EqualTo(3)); } }
public void Test_Process_ExistSubscriber() { using (TransactionScope scope = new TransactionScope()) { DataSet.TitleRow title = PrepareBasic(); DataSet.SubscriberRow subscriber = PrepareExist(title); RequestProcessor rp = new RequestProcessor(); rp.Process("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"); APNsTableAdapter ata = new APNsTableAdapter(); DataSet.APNsDataTable adt = ata.GetDataByTitleId(title.Id); Expect(adt.Count, Is.EqualTo(1)); Expect(adt[0].DeviceToken, Is.EqualTo("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")); TokenTableAdapter tta = new TokenTableAdapter(); DataSet.TokenDataTable tdt = tta.GetDataBySubscriberId(subscriber.Id); Expect(tdt.Count, Is.EqualTo(2)); } }
public static DataSet.SubscriberRow ResolveSubscriber(string tokenBody, AuthScheme authScheme) { if (tokenBody == null) { return PublishSubscriber(authScheme); } TokenTableAdapter tta = new TokenTableAdapter(); DataSet.TokenDataTable tdt = tta.GetDataByBody(tokenBody); if (tdt.Count == 0) { return PublishSubscriber(authScheme); } DataSet.TokenRow token = tdt[0]; SubscriberTableAdapter sta = new SubscriberTableAdapter(); DataSet.SubscriberRow subscriber = sta.GetDataById(token.SubscriberId)[0]; if (subscriber.AuthScheme != authScheme.ToString()) { throw new DoubtfulAuthBehaviorException("�F�g�[�N�������s���ꂽ�Ƃ��Ƃ͈قȂ�F�ؕ����œn����܂����B"); } return subscriber; }
private static DataSet.TokenRow GetToken(string tokenBody) { TokenTableAdapter tta = new TokenTableAdapter(); DataSet.TokenDataTable tdt = tta.GetDataByBody(tokenBody); if (tdt.Count == 1) { return tdt[0]; } else { return null; } }
private DataSet.SubscriberRow PrepareExist(DataSet.TitleRow title) { SubscriberTableAdapter sta = new SubscriberTableAdapter(); DataSet.SubscriberDataTable sdt = new DataSet.SubscriberDataTable(); sdt.AddSubscriberRow(title, "deadbeef", AuthScheme.iOS_APNs.ToString(), Constant.Ago); sta.Update(sdt); DataSet.SubscriberRow subscriber = sdt[0]; APNsTableAdapter ata = new APNsTableAdapter(); DataSet.APNsDataTable adt = new DataSet.APNsDataTable(); adt.AddAPNsRow(subscriber, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef", false, 0, false); ata.Update(adt); TokenTableAdapter tta = new TokenTableAdapter(); DataSet.TokenDataTable tdt = new DataSet.TokenDataTable(); tdt.AddTokenRow(subscriber, DateTime.Now - new TimeSpan(48, 0, 0), "deadbeef"); tta.Update(tdt); return subscriber; }
public void Test_Process_NewSubscriber() { using (TransactionScope scope = new TransactionScope()) { DataSet.TitleRow title = PrepareBasic(); RequestProcessor rp = new RequestProcessor(); rp.Process("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"); APNsTableAdapter ata = new APNsTableAdapter(); DataSet.APNsDataTable adt = ata.GetDataByTitleId(title.Id); Expect(adt.Count, Is.EqualTo(1)); Expect(adt[0].DeviceToken, Is.EqualTo("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")); SubscriberTableAdapter sta = new SubscriberTableAdapter(); DataSet.SubscriberDataTable sdt = sta.GetDataByTitleId(title.Id); Expect(sdt.Count, Is.EqualTo(1)); DataSet.SubscriberRow subscriber = sdt[0]; Expect(subscriber.AuthScheme, Is.EqualTo(AuthScheme.iOS_APNs.ToString())); TokenTableAdapter tta = new TokenTableAdapter(); DataSet.TokenDataTable tdt = tta.GetDataBySubscriberId(subscriber.Id); Expect(tdt.Count, Is.EqualTo(1)); } }