mirror of
https://github.com/fafhrd91/actix-web
synced 2025-01-18 13:51:50 +01:00
more middleware tests
This commit is contained in:
parent
a7c40024ce
commit
45325a5f75
@ -74,6 +74,38 @@ fn test_middleware() {
|
|||||||
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_middleware_multiple() {
|
||||||
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num2 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num3 = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let act_num1 = Arc::clone(&num1);
|
||||||
|
let act_num2 = Arc::clone(&num2);
|
||||||
|
let act_num3 = Arc::clone(&num3);
|
||||||
|
|
||||||
|
let mut srv = test::TestServer::new(move |app| {
|
||||||
|
app.middleware(MiddlewareTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
}).middleware(MiddlewareTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.handler(|_| HttpResponse::Ok())
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.get().finish().unwrap();
|
||||||
|
let response = srv.execute(request.send()).unwrap();
|
||||||
|
assert!(response.status().is_success());
|
||||||
|
|
||||||
|
assert_eq!(num1.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num2.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num3.load(Ordering::Relaxed), 2);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_resource_middleware() {
|
fn test_resource_middleware() {
|
||||||
let num1 = Arc::new(AtomicUsize::new(0));
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
@ -101,6 +133,38 @@ fn test_resource_middleware() {
|
|||||||
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_resource_middleware_multiple() {
|
||||||
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num2 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num3 = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let act_num1 = Arc::clone(&num1);
|
||||||
|
let act_num2 = Arc::clone(&num2);
|
||||||
|
let act_num3 = Arc::clone(&num3);
|
||||||
|
|
||||||
|
let mut srv = test::TestServer::new(move |app| {
|
||||||
|
app.middleware(MiddlewareTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
}).middleware(MiddlewareTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.handler(|_| HttpResponse::Ok())
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.get().finish().unwrap();
|
||||||
|
let response = srv.execute(request.send()).unwrap();
|
||||||
|
assert!(response.status().is_success());
|
||||||
|
|
||||||
|
assert_eq!(num1.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num2.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num3.load(Ordering::Relaxed), 2);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_scope_middleware() {
|
fn test_scope_middleware() {
|
||||||
let num1 = Arc::new(AtomicUsize::new(0));
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
@ -114,7 +178,7 @@ fn test_scope_middleware() {
|
|||||||
let mut srv = test::TestServer::with_factory(move || {
|
let mut srv = test::TestServer::with_factory(move || {
|
||||||
App::new().scope("/scope", |scope| {
|
App::new().scope("/scope", |scope| {
|
||||||
scope
|
scope
|
||||||
.middleware(MiddlewareAsyncTest {
|
.middleware(MiddlewareTest {
|
||||||
start: Arc::clone(&act_num1),
|
start: Arc::clone(&act_num1),
|
||||||
response: Arc::clone(&act_num2),
|
response: Arc::clone(&act_num2),
|
||||||
finish: Arc::clone(&act_num3),
|
finish: Arc::clone(&act_num3),
|
||||||
@ -135,6 +199,45 @@ fn test_scope_middleware() {
|
|||||||
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_scope_middleware_multiple() {
|
||||||
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num2 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num3 = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let act_num1 = Arc::clone(&num1);
|
||||||
|
let act_num2 = Arc::clone(&num2);
|
||||||
|
let act_num3 = Arc::clone(&num3);
|
||||||
|
|
||||||
|
let mut srv = test::TestServer::with_factory(move || {
|
||||||
|
App::new().scope("/scope", |scope| {
|
||||||
|
scope
|
||||||
|
.middleware(MiddlewareTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.middleware(MiddlewareTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.resource("/test", |r| r.f(|_| HttpResponse::Ok()))
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.get()
|
||||||
|
.uri(srv.url("/scope/test"))
|
||||||
|
.finish()
|
||||||
|
.unwrap();
|
||||||
|
let response = srv.execute(request.send()).unwrap();
|
||||||
|
assert!(response.status().is_success());
|
||||||
|
|
||||||
|
assert_eq!(num1.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num2.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num3.load(Ordering::Relaxed), 2);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_middleware_async_handler() {
|
fn test_middleware_async_handler() {
|
||||||
let num1 = Arc::new(AtomicUsize::new(0));
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
@ -416,6 +519,42 @@ fn test_async_middleware() {
|
|||||||
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_async_middleware_multiple() {
|
||||||
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num2 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num3 = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let act_num1 = Arc::clone(&num1);
|
||||||
|
let act_num2 = Arc::clone(&num2);
|
||||||
|
let act_num3 = Arc::clone(&num3);
|
||||||
|
|
||||||
|
let mut srv = test::TestServer::with_factory(move || {
|
||||||
|
App::new()
|
||||||
|
.middleware(MiddlewareAsyncTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.middleware(MiddlewareAsyncTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.resource("/test", |r| r.f(|_| HttpResponse::Ok()))
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.get().uri(srv.url("/test")).finish().unwrap();
|
||||||
|
let response = srv.execute(request.send()).unwrap();
|
||||||
|
assert!(response.status().is_success());
|
||||||
|
|
||||||
|
assert_eq!(num1.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num2.load(Ordering::Relaxed), 2);
|
||||||
|
|
||||||
|
thread::sleep(Duration::from_millis(30));
|
||||||
|
assert_eq!(num3.load(Ordering::Relaxed), 2);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_async_scope_middleware() {
|
fn test_async_scope_middleware() {
|
||||||
let num1 = Arc::new(AtomicUsize::new(0));
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
@ -452,6 +591,47 @@ fn test_async_scope_middleware() {
|
|||||||
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_async_scope_middleware_multiple() {
|
||||||
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num2 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num3 = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let act_num1 = Arc::clone(&num1);
|
||||||
|
let act_num2 = Arc::clone(&num2);
|
||||||
|
let act_num3 = Arc::clone(&num3);
|
||||||
|
|
||||||
|
let mut srv = test::TestServer::with_factory(move || {
|
||||||
|
App::new().scope("/scope", |scope| {
|
||||||
|
scope
|
||||||
|
.middleware(MiddlewareAsyncTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.middleware(MiddlewareAsyncTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
})
|
||||||
|
.resource("/test", |r| r.f(|_| HttpResponse::Ok()))
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.get()
|
||||||
|
.uri(srv.url("/scope/test"))
|
||||||
|
.finish()
|
||||||
|
.unwrap();
|
||||||
|
let response = srv.execute(request.send()).unwrap();
|
||||||
|
assert!(response.status().is_success());
|
||||||
|
|
||||||
|
assert_eq!(num1.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num2.load(Ordering::Relaxed), 2);
|
||||||
|
|
||||||
|
thread::sleep(Duration::from_millis(20));
|
||||||
|
assert_eq!(num3.load(Ordering::Relaxed), 2);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_async_resource_middleware() {
|
fn test_async_resource_middleware() {
|
||||||
let num1 = Arc::new(AtomicUsize::new(0));
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
@ -481,6 +661,45 @@ fn test_async_resource_middleware() {
|
|||||||
assert_eq!(num1.load(Ordering::Relaxed), 1);
|
assert_eq!(num1.load(Ordering::Relaxed), 1);
|
||||||
assert_eq!(num2.load(Ordering::Relaxed), 1);
|
assert_eq!(num2.load(Ordering::Relaxed), 1);
|
||||||
|
|
||||||
thread::sleep(Duration::from_millis(20));
|
thread::sleep(Duration::from_millis(40));
|
||||||
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
assert_eq!(num3.load(Ordering::Relaxed), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_async_resource_middleware_multiple() {
|
||||||
|
let num1 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num2 = Arc::new(AtomicUsize::new(0));
|
||||||
|
let num3 = Arc::new(AtomicUsize::new(0));
|
||||||
|
|
||||||
|
let act_num1 = Arc::clone(&num1);
|
||||||
|
let act_num2 = Arc::clone(&num2);
|
||||||
|
let act_num3 = Arc::clone(&num3);
|
||||||
|
|
||||||
|
let mut srv = test::TestServer::with_factory(move || {
|
||||||
|
let mw1 = MiddlewareAsyncTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
};
|
||||||
|
let mw2 = MiddlewareAsyncTest {
|
||||||
|
start: Arc::clone(&act_num1),
|
||||||
|
response: Arc::clone(&act_num2),
|
||||||
|
finish: Arc::clone(&act_num3),
|
||||||
|
};
|
||||||
|
App::new().resource("/test", move |r| {
|
||||||
|
r.middleware(mw1);
|
||||||
|
r.middleware(mw2);
|
||||||
|
r.h(|_| HttpResponse::Ok());
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.get().uri(srv.url("/test")).finish().unwrap();
|
||||||
|
let response = srv.execute(request.send()).unwrap();
|
||||||
|
assert!(response.status().is_success());
|
||||||
|
|
||||||
|
assert_eq!(num1.load(Ordering::Relaxed), 2);
|
||||||
|
assert_eq!(num2.load(Ordering::Relaxed), 2);
|
||||||
|
|
||||||
|
thread::sleep(Duration::from_millis(40));
|
||||||
|
assert_eq!(num3.load(Ordering::Relaxed), 2);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user