예제 #1
0
        public void UpdateDelete_ConcurrencySuccess_Binary()
        {
            switch (this.ProviderType)
            {
            case ProviderType.SQLite:
                Assert.Ignore("The provider does not support binary concurrency check.");
                return;
            }

            var set = this.Database.Set <Whisker>(this.Transaction);

            set.Clear();
            var data = new Whisker()
            {
                Name = "Name"
            };
            var version = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };

            set.AddOrUpdate(data);
            {
                Array.Copy(data.Version, version, version.Length);
                Array.Reverse(version);
                Assert.AreEqual(BitConverter.ToInt64(version, 0), 0);
            }
            for (var a = 1; a < 10; a++)
            {
                data.Name = "update" + a;
                set.AddOrUpdate(data);
                Array.Copy(data.Version, version, version.Length);
                Array.Reverse(version);
                Assert.AreEqual(BitConverter.ToInt64(version, 0), a);
            }
            set.Remove(data);
        }
예제 #2
0
        public void Update_ConcurrencyFailure_Binary()
        {
            var set = this.Database.Set <Whisker>(this.Transaction);

            set.Clear();
            var data = new Whisker()
            {
                Name = "Name"
            };

            set.AddOrUpdate(data);
            {
                var version = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };
                Array.Copy(data.Version, version, version.Length);
                Array.Reverse(version);
                Assert.AreEqual(BitConverter.ToInt64(version, 0), 0);
            }
            data.Name = "updated1";
            set.AddOrUpdate(data);
            {
                var version = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };
                Array.Copy(data.Version, version, version.Length);
                Array.Reverse(version);
                Assert.Greater(BitConverter.ToInt64(version, 0), 0);
            }
            data.Name    = "updated2";
            data.Version = BitConverter.GetBytes(0L);
            Assert.Throws <InvalidOperationException>(() => set.AddOrUpdate(data));
        }
예제 #3
0
    // Use this for initialization
    void Awake()
    {
        audio.AddLast(this.GetComponent <AudioSource>());
        Debug.Log(data);
        start = Combine(data.StartSequence);
        end   = Combine(data.EndSequence);
        Whisker f = this.transform.GetChild(0).GetComponent <Whisker>();
        Whisker r = this.transform.GetChild(1).GetComponent <Whisker>();
        Whisker l = this.transform.GetChild(2).GetComponent <Whisker>();

        if (f != null)
        {
            f.audioClips = data.Wall.front;
        }
        if (f != null)
        {
            r.audioClips = data.Wall.right;
        }
        if (f != null)
        {
            l.audioClips = data.Wall.left;
        }
        Play(start);
        usedTriggers  = new bool[data.TriggerResponses.Length];
        usedDistances = new bool[data.DistanceResponses.Length];
    }
예제 #4
0
        public void CanIncrement_Binary()
        {
            var subject = new Whisker()
            {
                Version = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }
            };
            var incrementor = new LambdaPropertyIncrementorStrategy().CreateBinaryIncrementor <Whisker>(
                typeof(Whisker).GetProperty("Version"),
                8
                );

            for (var a = 0; a < 1024; a++)
            {
                var version = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };
                Array.Copy(subject.Version, version, version.Length);
                Array.Reverse(version);
                Assert.AreEqual(a, BitConverter.ToInt64(version, 0));
                incrementor(subject);
            }
        }